DBUtils 框架
1、概述:
DBUtils是java编程中的数据库操作实用工具,小巧简单实用。
DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
Dbutils三个核心功能介绍
QueryRunner中提供对sql语句操作的API.
ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法
2、QueryRunner 核心类:
QueryRunner(DataSource ds) ,提供数据源(连接池),DBUtils底层自动维护连接connection
update(String sql, Object… params) ,执行更新数据 insert update delete
query(String sql, ResultSetHandler rsh, Object… params) ,执行查询 select
3、ResultSetHandler结果集处理类
ArrayHandler 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
ArrayListHandler 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
BeanHandler 将结果集中第一条记录封装到一个指定的javaBean中。
BeanListHandler 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
ColumnListHandler 将结果集中指定的列的字段值,封装到一个List集合中
KeyedHandler 将结果集中每一条记录封装到Map
//更新update:
@Test
public void testUpdate() throws Exception{
try {
//1 核心类
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
//2 sql
String sql = "update category set cname=? where cid = ?";
//3 参数
Object[] params = {"家电","c006"};
//4执行
queryRunner.update(sql, params);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//查询单一字段 Query:
@Test
public void testFindById() throws Exception{
try {
//1 核心类
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
//2 sql
String sql = "select * from category where cid=?";
//3 参数
Object[] params = {"c003"};
//4执行
Category category = queryRunner.query(sql, new BeanHandler<Category>(Category.class), params);
System.out.println(category);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//查询所有:
@Test
public void testFindAll() throws Exception{
try {
//1 核心类
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
//2 sql
String sql = "select * from category";
//3 参数
Object[] params = {};
//4执行
List<Category> allCategory = queryRunner.query(sql, new BeanListHandler<Category>(Category.class), params);
for (Category category : allCategory) {
System.out.println(category);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
// 查询总记录数:
@Test
public void testCount() throws Exception{
try {
//1 核心类
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
//2 sql
String sql = "select count(*) from category";
//3 参数
Object[] params = {};
//4执行
Long numLong = (Long) queryRunner.query(sql, new ScalarHandler(), params);
int num = numLong.intValue();
System.out.println(num);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
DBUtils框架使用总结:、
- 加载JDBC驱动程序类,并用DriverManager来得到一个数据库连接conn。
- 实例化 QueryRunner,得到实例化对象qRunner。
- qRunner.update()方法,执行增改删的sql命令, qRunner.query()方法,得到结果集。