• 欢迎来到本博客,希望可以y一起学习与分享

DBUtils数据库工具类 and ResultSetHandler数据集处理

Java benz 4年前 (2018-02-08) 143次浏览 0个评论 扫描二维码
文章目录[隐藏]

前言:JavaBean组件

JavaBean 就是一个类,在开发中常用于封装数据。具有如下特性

  1. 1. 需要实现接口:java.io.Serializable,通常偷懒省略了
  2. 2. 提供私有字段:private 类型 字段名;
  3. 3. 提供getter/setter方法
  4. 4. 提供无参构造

一、DBUtils完成CRUD

DBUtils 是java编程中的数据库操作实用工具,小巧简单实用。
DBUtils 封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
DBUtils 三个核心功能介绍

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

QueryRunner核心类

  1. QueryRunner(DataSource ds),提供数据源(连接池),DBUtils底层自动维护连接Connection
  2. update(String sql,Object… params),执行更新数据(update/delecte/alert)
  3. query((String sql,ResultSetHandler rsh,Object… params),执行查询(select)

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 表名 操作

DBUtils 工具类

  1. closeQuitely(Connection conn) 关闭连接,如果有异常,try后不抛
  2. commitAndCloseQuitely(Connection conn) 提交并关闭连接
  3. rollbackAndCloseQuitely(Connection conn) 回滚并关闭连接

DBUtils使用,简单示例

ResultSetHandler处理类的各个实现示例

二、ResultSetHandler

我们知道在执行select语句之后得到的是ResultSet,然后我们还需要对ResultSet进行转换,得到最终我们想要的数据。你可以希望把ResultSet的数据放到一个List中,也可能想把数据放到一个Map中,或是一个Bean中。

DBUtils提供了一个接口ResultSetHandler,它就是用来ResultSet转换成目标类型的工具。你可以自己去实现这个接口,把ResultSet转换成你想要的类型。

DBUtils提供了很多个ResultSetHandler接口的实现,这些实现已经基本够用了,我们通常不用自己去实现ResultSet接口了。

  • MapHandler:单行处理器!把结果集转换成Map<String,Object>,其中列名为键!
  • MapListHandler:多行处理器!把结果集转换成List<Map<String,Object>>;
  • BeanHandler:单行处理器!把结果集转换成Bean,该处理器需要Class参数,即Bean的类型;
  • BeanListHandler:多行处理器!把结果集转换成List<Bean>;
  • ColumnListHandler:多行单列处理器!把结果集转换成List<Object>,使用ColumnListHandler时需要指定某一列的名称或编号,例如:new ColumListHandler(“name”)表示把name列的数据放到List中。
  • ScalarHandler:单行单列处理器!把结果集转换成Object。一般用于聚集查询,例如select count(*) from tab_student。

Map处理器

Bean处理器

Column处理器

Scalar处理器


文章 DBUtils数据库工具类 and ResultSetHandler数据集处理 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!