DBUtil的使用

DBUtil是Apache的JDBC工具库,简化数据库操作。它包含三个核心对象:QueryRunner、ResultSetHandler和DBUtils。QueryRunner提供select、update和batch操作,支持手动和自动事务控制。ResultSetHandler接口处理查询结果,如ArrayHandler、ArrayListHandler等。DBUtils工具类负责资源关闭和事务处理。
摘要由CSDN通过智能技术生成

一、DBUtil介绍

DBUtil是什么及作用

DBUtil是Apache提供的一个开源的JDBC工具类库,是java编程中数据库操作实用工具,小巧简单。

DBUtil封装了对JDBC的操作,简化了JDBC操作,可以让我们少些代码。

1.对数据表的读操作

可以将结果转换成List、Array、Set等集合。

2.对数据表的写操作

只需要写SQL语句

3.可以使用数据源,使用JNDI,数据库连接池等技术来优化程序性能。

二、DBUtil的三个核心对象

QueryRunner类

QueryRunner中提供对sql语句的操作,主要有三个方法:

1.query()用于执行select操作

2.update()用于执行更新操作(insert、update、delete)

3.batch()批处理

ResultSetHandler接口

定义了执行select操作后如何封装结果集

DBUtils类

是一个工具类,定义了关闭资源和事务处理的方法

1.QueryRunner类

构造函数:

QueryRunner有四个构造函数,这里主要讲两个

1)QueryRunner qr = new QueryRunner();

这个构造函数没有参数,可以用于需要手动控制事务,在使用该对象调用方法时(query,update,batch),需要传入Connection对象

2) QueryRunner qr = new QueryRunner(DataSource ds);

这个构造函数可以传入一个数据源参数,它的事务是自动控制的(一个sql一个事务),在使用该对象调用方法时,不用再传入Connection对象。

方法:query(),update(),batch()

下面写几个例子:

1)建数据表(这里我就用自己原有的数据表了)

2)创建项目导入jar包

3)代码示例

1 public class TestQueryRunner {
   
2     
3 //    insert操作
4     @Test
5     public void testInsert() throws SQLException {
   
6 //        创建QueryRunner对象
7         QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
8         qr.update("insert into user(username,password,email,birthday) values(?,?,?,?)",
9                 "xiaoming","123456","xiaoming@163.com",new Date());
10     }
11     
12 //    update操作
13     @Test
14     public void testUpdate() throws SQLException {
   
15         QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
16         qr.update("update user set password = ? where username = ?","123123","xiaoming");
17         
18     }
19     
20 //    delete操作
21     @Test
22     public void testDelete() throws SQLException {
   
23         QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
24         qr.update("delete from user where id = ?",9);
25     }
26     
27 //    select操作
28     @Test
29     public void testSelect() throws SQLException {
   
30         QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
31         User user = qr.query("select * from user where username = ?", 
32                 new BeanHandler<User>(User.class),"xiaoming");
33         System.out.println(user);
34     }
35     
36 //    batch操作(执行相同的sql语句)
37     @Test
38     public void testBatch() throws SQLException {
   
39         QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
40 //        传入一个二维数组,高维是需要执行的sql语句的次数,低维为需要给sql语句中?赋的值
41         Object[][] params = new Object[10][];
42         for (int i = 0; i < params.length; i++) {
   
43             params[i] = new Object[] {
   "xiaoming",
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值