gzyueqian
13352868059

Dbutil框架和Dbutil的简单介绍

更新时间: 2018-08-28 10:40:44来源: 嵌入式培训浏览量:6800

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学习

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

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

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

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

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

? public static void closeQuietly(…): 这一类方法不仅能在Connection、Statement和ResultSet为NULL情况下避免关闭,还能隐藏一些在程序中抛出的SQLException。

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

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

QueryRunner
l 该类简单化了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
l 该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。

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

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

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

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

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

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

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

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

6) ScalarHandler 进行单值查询 select count(*) from account;
粤嵌科技创办于2005年是一家IT高新技术企业,专注IT职业教育13年,主要培训课程分别有嵌入式培训、Java培训、Unity游戏开发、Python人工智能、HTML5前端开发、全栈UI设计、网络营销、CCIE网络等专业课程,咨询电话:020-61038927

免费预约试听课