一、DBUtils介绍apache
什么是DBUtils,它的作用
DBUtils是Java编程中的数据库操作实用工具,小巧简单实用。
DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
1。对于数据表的读操作,他可以把结果转换成列表、数组、集合等Java集合,便于程序员操作
2。对于数据表的写操作,也变得很简单(只需写sql语句)
3。可以使用数据源,使用JNDI,数据库连接池等技术来优化性能,重用已经构建好的数据库连接对象
二,DBUtils的三个核心对象
QueryRunner类
ResultSetHandler接口
DBUtils类
QueryRunner类
QueryRunner中提供对sql语句操作的API
它主要有三个方法
query()//用于执行选择
更新()//用于执行插入、更新、删除
批()//批处理
ResultSetHandler接口
用于定义选择操作后,怎样封装结果集
DBUtils类
它就是一个工具类,定义了关闭资源与事务处理的方法
三,DBUtils快速入门
导入jar包
创建QueryRunner对象
使用查询方法执行选择语句
使用ResultSetHandler封装结果集
使用DBUtils类释放资源
DBUtils快速入门实现步骤:
导入jar包
注意:c3p0与mysql驱动jar也要导入。
创建QueryRunner对象
使用查询方法执行选择语句
使用ResultSetHandler封装结果集
使用DBUtils类释放资源
四,QueryRunner对象
构造函数:
新QueryRunner():它的事务可以手动控制
也就是说此对象调用的方法(如:查询、更新batrch)参数中要有连接对象
新QueryRunner(数据源ds):它的事务是自动控制的一个sql一个事务
此对象调用的方法(如:查询、更新batrch)参数中无需连接对象
进行基本的CRUD操作:练一下
公共类TestQueryRunner {
@Test
公共空间testInsert()抛出SQLException {
QueryRunner qr=new QueryRunner (C3P0Util.getDataSource ());
qr。更新(“插入学生(姓名、生日)值(? ?)”" bbb " 日期());}
@Test
公共空testUpdate()抛出SQLException {
QueryRunner qr=new QueryRunner (C3P0Util.getDataSource ());
qr。更新(“更新学生集名称=?生日=?id=?”、“ccc”、新 日期(),1);
}
@Test
公共空testDelete()抛出SQLException {
QueryRunner qr=new QueryRunner (C3P0Util.getDataSource ());
qr。更新(“删除从学生id=?”1),
}
@Test
公共空testBatch()抛出SQLException {
QueryRunner qr=new QueryRunner (C3P0Util.getDataSource ());
Object [] [] params=新对象[10][];//高维表示要执行多少条sql语句
(int i=0;我& lt;params.length;我+ +){
params[我]=新对象[]{菜10 + i, " 123 ", " c10@163.com ",新的日期()};
}
qr。批处理(“插入用户(用户名、密码、电子邮件、生日) 值(?,?,?,?)”,params);
}
}
五,ResultSetHandler接口
ResultSetHandler下的所有结果处理器
ArrayHandler:适合取1条记录。把该条记录的每列值封装到一个数组中对象[]
ArrayListHandler:适合取多条记录。把每条记录的每列值封装到一个数组中对象[],把数组封装到一个列表中
ColumnListHandler:取某一列的数据。封装到列表中
KeyedHandler:取多条记录,每一条记录封装到一个地图中,再把这封个地图装到另外一个地图中,主要为指定的字段值
MapHandler:适合取1条记录。把当前记录的列名和列值放到一个地图中
MapListHandler:适合取多条记录。把每条记录封装到一个地图中,再把地图封装到列表中
ScalarHandler:适合取单行单列数据
BeanHandler BeanListHandler