DBUtils详解

article/2025/10/3 0:06:57

目录

DBUtils查询数据

匿名内部类方式

反射方式

反射方式查询数据的触发器分类

多表查询

DBUtils增加,删除,修改数据


前言

使用DBUtils操作数据库,会更加的方便,因为它封装了JDBC的代码,这里我们配合c3p0使用

并不是说一定要用c3p0,因为使用DBUtils 的时候需要手动传递一个Connection对象,所以只需要对象

即可,这里仅仅是拿c3p0作为例子

DBUtils 的简介和概念 https://www.cnblogs.com/CQY1183344265/p/5854418.html

总的来说,就是方便的操作数据库,并且不需要我们自己手动释放资源

 

首先我们创建一个bean类

这个类里的字段和数据库一致,并且所有的字段都加上get/set方法

DBUtils查询数据

匿名内部类方式

这种方式较为复杂,而且代码量居多,并不适合

	public static void main(String[] args) throws SQLException{// 创建连接池对象并且自动加载配置文件,这里我们使用的是C3P0ComboPooledDataSource dataSource1 = new ComboPooledDataSource();// DBUtils只是帮我们简化CRUB代码,还是需要传递连接对象的// 里面会自动调用getConnectionQueryRunner queryRunner1 = new QueryRunner(dataSource1);String sql = "select * from bank where id=?";//查询一条数据//query的第二个参数我们这里填的是ResultSetHandler接口额,并且使用了匿名内部类//在查询某一条数据的时候,用ResultSetHandler//第3个参数在最后面,是一个1,也就是查询出id为1的那条数据queryRunner1.query(sql, new ResultSetHandler<Account>() {// ResultSetHandler接口的方法,需要我们实现public Account handle(ResultSet rs) throws SQLException{//新建Account内容,并且在下面填充数值Account account2 = new Account();//遍历出数据while (rs.next()){//从查询结果中获取数值并且填充到Account里int id = rs.getInt("id");String name = rs.getString("name");int money = rs.getInt("money");account2.setId(id);account2.setName(name);account2.setMoney(money);// 输出结果account2.toString();}//这里需要返回我们新建的对象return account2;}//这个后面的1,就是第3个参数}, 1);}

反射方式

利用反射机制,将数据自动填充到bean里

	public static void testSelect2() throws SQLException{// 创建连接池对象并且自动加载配置文件,这里我们使用的是C3P0ComboPooledDataSource dataSource1 = new ComboPooledDataSource();// 创建查询对象,我们传入dataSource,里面应该会自动调用getConnectionQueryRunner queryRunner1 = new QueryRunner(dataSource1);String sql = "select * from bank where id=?";//查询单条数据//第2个参数传入触发器,查询单条数据用 BeanHandler,泛型填我们要填充的对象//触发器的参数是要填充对象的类描述符//然后函数内部会自动去调用get,set方法,如果我们去掉了get set方法就获取不到数值Account account1 = queryRunner1.query(sql, new BeanHandler<Account>(Account.class), 1);account1.toString();System.out.println("==========下面是查询多个===================");sql = "select * from bank";//查询多条数据,用到 BeanListHandlerList<Account> list1 = queryRunner1.query(sql, new BeanListHandler<Account>(Account.class));for (Account account : list1){account.toString();}//如果sql语句中使用了聚合函数,那么就必须使用ScalarHandler  Scalar标量,数量   //因为聚合函数返回的是标准(基本)的数据类型,比如Longsql="select count(*) from bank where name=?";Long num=(Long)queryRunner1.query(sql,new ScalarHandler(),"bbb");System.out.println("num=="+num);}

 

反射方式查询数据的触发器分类

 

多表查询

MapListHandler

 

DBUtils增加,删除,修改数据

使用DBUtils做这些事情,就变的十分简单了,只需要使用update即可,剩下的只需要我们写相应的sql语句

	public static void main(String[] args) throws SQLException{// 创建连接池对象并且自动加载配置文件,这里我们使用的是C3P0ComboPooledDataSource dataSource1 = new ComboPooledDataSource();// DBUtils只是帮我们简化CRUB代码,还是需要传递连接对象的// 里面应该会自动调用getConnectionQueryRunner queryRunner1 = new QueryRunner(dataSource1);// update可以实现增加,删除,更新String sql = "insert into bank values(null,'test1',123)";queryRunner1.update(sql);}

 


http://chatgpt.dhexx.cn/article/dl9M9XCw.shtml

相关文章

JavaWeb——(13)DBUtils

目录 一、DBUtils介绍 二、DBUtils核心对象 三、DBUtils使用简单案例 四、QueryRunner对象 4.1构造函数 4.2方法 五、ResultSetHandler接口 六、DBUtils控制事务 6.1ThreadLocal 6.2模拟转账业务 一、DBUtils介绍 DBUtils是java编程中的数据库操作实用工具&#xff…

DBUtils工具类的使用方法详解

DBUtils使用方法详解 目录 DBUtils使用方法详解一、前言二、JDBC介绍1.基本概念2.JDBC访问数据库的流程 三、DBUtils介绍1.基本概念2.配置文件3.创建JDBCUtils类4.实现对数据表的增删改查 四、对以上代码的说明五、总结 一、前言 本文是关于DBUtils使用方法的介绍&#xff0c;…

如何用计算机解kkt条件,【直观详解】拉格朗日乘法和KKT条件

【阅读时间】8min - 10mun 【内容简介】直观的解读了什么是拉格朗日乘子法,以及如何求解拉格朗日方程,并且给出几个直观的例子,针对不等式约束解读了KKT条件的必要条件和充分条件 What & Why 拉格朗日乘法(Lagrange multiplier)是一种在最优化的问题中寻找多元函数在其变…

SVM中的KKT条件和拉格朗日对偶

首先&#xff0c;我们要理解KKT条件是用来干嘛的&#xff1f; KKT条件用来判断一个解是否属于一个非线性优化问题。 求最优解&#xff1a; 约束条件分为 1、等式约束 2、不等式约束 对于等式约束的优化问题&#xff0c;可以直接应用拉格朗日乘子法去求取最优值&#xff1b; …

KKT条件详解

KKT条件详解 主要参考这篇文章和这个知乎回答。 KKT最优化条件是Karush[1939]&#xff0c;以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker发表之后才逐渐受到重视&#xff0c;因此许多情况下只记载成库恩塔克条件&#xff08;Kuhn-Tucker conditions…

KKT条件总结

最近学习的时候用到了最优化理论&#xff0c;但是我没有多少这方面的理论基础。于是翻了很多大神的博客把容易理解的内容记载到这篇博客中。因此这是篇汇总博客&#xff0c;不算是全部原创&#xff0c;但是基础理论&#xff0c;应该也都差不多吧。因才疏学浅&#xff0c;有纰漏…

KKT条件

无约束优化 首先给出一些基本概念定义&#xff1a; 凸集&#xff1a; 欧式空间中&#xff0c;集合中任意两点的连线都在集合中&#xff0c;我们就说这个集合是凸集&#xff1b;凸函数&#xff1a; 对于任意属于[0,1]的a和任意属于凸集的两点x, y&#xff0c;有 f ( a x ( 1 …

KKT 直观理解

KKT最优化条件是Karush[1939]&#xff0c;以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker发表之后才逐渐受到重视&#xff0c;因此许多情况下只记载成库恩塔克条件&#xff08;Kuhn-Tucker conditions) 库恩塔克条件(Kuhn-Tucker conditions)是非线性…

判断kkt条件的例题_kkt条件例题(kkt条件例题求解)

kkt条件例题(kkt条件例题求解) 2020-05-08 10:54:39 共10个回答 要看目标函数的斜率,不能单凭横坐标或纵坐标确定追问能举例说明吗回答一般线性规划的图像解法是通过平移一条直线,观察与可行域的焦点来求极值的这个还是线性规划里比较基础的问题.建议你找一本线性规划的书或者是…

kkt条件的理解_直观理解KKT条件

KKT最优化条件是Karush[1939],以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker发表之后才逐渐受到重视,因此许多情况下只记载成库恩塔克条件(Kuhn-Tucker conditions) 库恩塔克条件(Kuhn-Tucker conditions)是非线性规划领域里最重要的理论成果之一…

对偶专题——KKT条件

[对偶专题——Duality and Dual problem (一) https://blog.csdn.net/jmh1996/article/details/85030323] 对于一般的带约束的优化问题&#xff1a; 介绍了如何通过构造原优化目标的一个下界函数 L ( x , λ , u ) L(x,\lambda,u) L(x,λ,u)&#xff0c;这一般通过添加一些线性…

java telnet端口_Java 实现 telnet命令 验证主机端口的连通性

Java 实现 telnet命令 验证主机端口的连通性 1、Telnet 命令 Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在…

解决阿里云服务器telnet端口不成功的问题

问题还原 阿里服务器部署了一个API站点&#xff0c;端口为8079&#xff0c;本地电脑怎么telnet到这个端口都不成功 排查 防火墙 要么把防火墙全部关闭&#xff0c;或者配置入站出站规则&#xff0c;这里我是直接关闭服务器的防火墙 查看端口是否正常监听 确保系统内部必须…

能ping通,但是telnet端口连接失败

背景&#xff1a;在windows上创建了客户端&#xff0c;使用腾讯云的轻量服务器创建的Linux服务器。 问题&#xff1a;服务器操作系统防火墙已关闭&#xff0c;使用ping命令没问题&#xff0c;但是使用telnet测试端口的时候&#xff0c;连接失败。 解决&#xff1a;一开始添加了…

telnet端口不通怎么解决(单边不通的方法建议)

telnet端口不通是大家在检测端口的时候可能会遇到的问题之一&#xff0c;遇到这种状况一般要如何解决呢&#xff1f;这里为各位带来分享&#xff0c;看一下telnet端口不通的解决方式&#xff0c;看一下如何处理吧。 telnet端口不通怎么解决 1.开放供应商服务器端口 总是出现…

telnet服务器端口

telnet服务器端口 1.Windows 机器使用telnet命令1.2开启telnet功能1.2 使用telnet 1.Windows 机器使用telnet命令 1.2开启telnet功能 可以通过下面步骤进入程序和功能 然后找到启用或关闭Windows功能 然后勾选上Telnet客户端&#xff0c;代表功能开启。 1.2 使用telnet …

telnet命令及测试网络端口的几种方法

1、常见的用法&#xff1a; telnet IP port 如&#xff1a;telnet 192.168.1.10 80 端口&#xff0c;如果端口没有开启监听则会显示连接失败。 若端口有开启监听&#xff0c;telnet端口是通的会显示一个白色的光标并闪烁&#xff0c;如下图&#xff1a; 2、Linux下其余几种测…

Telnet端口

出现“Telnet不是内部命令”的相关提示&#xff0c;说明Telnet客户端没有开启 一、开启Telnet客户端 1、打开控制面板&#xff0c;点击“程序” 2、选择“启用或关闭Widows功能” 3、我们可以看到“Telnet Client”没有勾选&#xff0c;即没有开启 4、勾选“Telnet Client”…