Dbutil框架简单介绍

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对象

扫描二维码关注公众号,回复: 1852627 查看本文章

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;

猜你喜欢

转载自blog.csdn.net/qq_30764991/article/details/80889902