【JDBC】DBUtils工具类

一、DBUtils简介

使用JDBC我们发现冗余的代码太多了,为了简化开发 我们选择使用 DBUtils

Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。

  • 使用方式:
    DBUtils就是JDBC的简化开发工具包。需要项目导入commons-dbutils-1.6.jar。
    在这里插入图片描述

二、Dbutils核心功能介绍

  1. QueryRunner 中提供对sql语句操作的API.
  2. ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
  3. DbUtils类,他就是一个工具类,定义了关闭资源与事务处理相关方法.

三、DBUtils完成 CRUD操作

1. QueryRunner核心类

  • 构造方法
    • QueryRunner()
    • QueryRunner(DataSource ds) ,提供数据源(连接池),DBUtils底层自动维护连接connection
  • 常用方法
    • update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作
    • query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作

2. QueryRunner的创建

2.1 手动模式

//手动方式 创建QueryRunner对象
QueryRunner qr = new QueryRunner();

2.2 自动模式需要传入连接池对象

//获取连接池对象
public static DataSource getDataSource(){
    
    
return dataSource;
}

3. QueryRunner实现增、删、改操作

update(Connection conn, String sql, Object... params)

参数 说明
Connection conn 数据库连接对象, 自动模式创建QueryRun 可以不传 ,手动模式必须传递
String sql 占位符形式的SQL ,使用 ? 号占位符
Object… param Object 类型的 可变参,用来设置占位符上的参数

步骤

  1. 创建QueryRunner(手动或自动)
  2. 占位符方式 编写SQL
  3. 设置占位符参数
  4. 执行

4. QueryRunner实现查询操作

4.1 ResultSetHandler接口简介

ResultSetHandler可以对查询出来的ResultSet结果集进行处理,达到一些业务上的需求。

4.2 ResultSetHandler 结果集处理类

本例展示的是使用ResultSetHandler接口的几个常见实现类实现数据库的增删改查,可以大大减少代码量,优化程序。
每一种实现类都代表了对查询结果集的一种处理方式

ResultSetHandler实现类 说明
**ArrayHandler ** 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
ArrayListHandler 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
BeanHandler 将结果集中第一条记录封装到一个指定的javaBean中.
BeanListHandler 将结果集中每一条记录封装到指定的javaBean中,再将这些javaBean在封装到List集合中
ColumnListHandler 将结果集中指定的列的字段值,封装到一个List集合中
KeyedHandler 将结果集中每一条记录封装到Map<String,Object>,在将这个map集合做为另一个Map的value,
另一个Map集合的key是指定的字段的值。
MapHandler 将结果集中第一条记录封装到了Map<String,Object>集合中,key就是字段名称,
value就是字段值
MapListHandler 将结果集中每一条记录封装到了Map<String,Object>集合中,key就是字段名称,
value就是字段值,在将这些Map封装到List集合中。
ScalarHandler 它是用于封装单个数据。例如 select count(*) from 表操作。

4.3 ResultSetHandler 常用实现类测试

  • QueryRunner的查询方法
  • query方法的返回值都是泛型,具体的返回值类型,会根据结果集的处理方式,发生变化
方法 说明
query(String sql, handler ,Object[] param) 自动模式创建QueryRunner, 执行查询<b
query(Connection con,String sql,handler,Object[] param) 手动模式创建QueryRunner, 执行查询

猜你喜欢

转载自blog.csdn.net/Guai_Ka/article/details/113755799
今日推荐