Dbutil框架简单介绍

Dbutils是Apache提供的一个开源JDBC工具类库,简化了JDBC的使用,通过QueryRunner类和ResultSetHandler接口大大减少了数据库操作的编码量。本文介绍了Dbutils的主要组件,包括QueryRunner、ResultSetHandler和DbUtils工具类及其常用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dbutil框架

Dbutil介绍

l commons-dbutils Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。

l API介绍:

• org.apache.commons.dbutils.QueryRunner --- 核心

• org.apache.commons.dbutils.ResultSetHandler

• 工具类

• org.apache.commons.dbutils.DbUtils、。   

 

DBUtils学习

1QueryRunner 框架核心类 ,所有数据库操作都是必须通过 QueryRunner 进行的

2ResultSetHandler 结果集封装接口,完成将ResultSet 结果集 封装为一个Java对象

3DbUtils 工具类 提供驱动管理、事务管理、释放资源等一系列公共方法

 

DbUtils

l DbUtils :提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的。主要方法如下:

• public static void close(…) throws java.sql.SQLException: DbUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不是的话,它们就关闭ConnectionStatementResultSet

• public static void closeQuietly(…): 这一类方法不仅能在ConnectionStatementResultSetNULL情况下避免关闭,还能隐藏一些在程序中抛出的SQLException

• public static void commitAndCloseQuietly(Connection conn): 用来提交连接,然后关闭连接,并且在关闭连接时不抛出SQL异常。

• public static boolean loadDriver(java.lang.String driverClassName):这一方装载并注册JDBC驱动程序,如果成功就返回true。使用该方法,你不需要捕捉这个异常ClassNotFoundException

QueryRunner

该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。

l QueryRunner类提供了两个构造方法:

• 默认的构造方法(手动管理事务)

• 需要一个 javax.sql.DataSource 来作参数的构造方法。(自动管理事物)

l 更新操作

• public int update(Connection conn, String sql, Object... params)

• public int update(String sql, Object... params)

l 查询操作

• public Object query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)

• public Object query(String sql, ResultSetHandler<T> rsh, Object... params)

 

ResultSetHandler

该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。

l ResultSetHandler 接口提供了一个单独的方法:Object handle (java.sql.ResultSet .rs)

 

 

ResultSetHandler DBUtils 框架中提供九个默认 实现类,直接使用九个默认实现类,可以完成常规操作,而不需要自定义结果集封装

 

1) ArrayHandler ArrayListHandler  将数据表的每行记录保存Object[]

2) BeanHandler BeanListHandler 将数据表每行记录 保存JavaBean对象中

* 封装javabean属性时,必须保证数据表列名与 javabean属性名一致,否则无法封装

3) MapHandlerMapListHandler 将结果每行记录保存到一个Map集合,key是列名,value是值  

4) ColumnListHandler 查询结果集中指定一列数据

5) KeyedHandler(name) 结果集每行数据封装map,再将map存入另一个map 作为value,指定一列作为key

6) ScalarHandler 进行单值查询 select count(*) from account;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值