`
lengyue_dick
  • 浏览: 84385 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

commons-dbutils 工具包的使用

阅读更多
commons-dbutils 是 Apache 组织提供的一个开源 JDBC 工具类库,能让我们更简单的使用 JDBC 。
今天,在传智播客的课堂上,我们学习了 DBUtils 类库,知道了如何能够更方便地使用 JDBC 。以下是我的学习总结。


--------------------------------------------------------------------------------
1. API 介绍:
<1> org.apache.commons.dbutils.DbUtils:提供如关闭连接、装载 JDBC 驱动程序等常规工作的工具类;
<2> org.apache.commons.dbutils.QueryRunner:该类简单化了 SQL 查询,它与 ResultSetHandler 组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。
<3> org.apache.commons.dbutils.ResultSetHandler:该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。
--------------------------------------------------------------------------------

2. 工具类的方法及示例代码:
<1> DBUtil 类的主要方法如下:
a. public static void close(…) throws java.sql.SQLException: DbUtils类提供了三个重载的关闭

方法。这些方法检查所提供的参数是不是 NULL ,如果不是的话,它们就关闭 Connection、Statement 和 ResultSet。
b. public static void closeQuietly(…): 这一类方法不仅能在 Connection、Statement 和ResultSet 为 NULL 情况下避免关闭,还能隐藏一些在程序中抛出的 SQLEeception。
c. public static void commitAndCloseQuietly(Connection conn): 用来提交连接,然后关闭连接,并

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


--------------------------------------------------------------------------------
<2> QueryRunner 类的构造方法及主要方法:
a. 默认的构造方法:
public QueryRunner(){}
b. 需要一个 javax.sql.DataSource 来作参数的构造方法:
public QueryRunner(DataSource ds) {
this.ds = ds;
}
QueryRunner类的主要方法:
c. public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh)
throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭。更重要的是参数 ResultSetHandler 会把从 ResultSet 中获得的数据转换成程序需要的数据格式。
d. public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException:几乎与第一种方法一样;唯一的不同在于它不将数据库连接提供给方法,并且它是从提供给构造方法的数据源(DataSource) 或使用的setDataSource 方法中重新获得 Connection。
e. public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException :执行一个不需要置换参数的查询操作。
f. public int update(Connection conn, String sql, Object[] params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。
g. public int update(Connection conn, String sql) throws SQLException:用来执行一个不需要置换

参数的更新操作。


--------------------------------------------------------------------------------
<3> ResultSetHandler接口
ResultSetHandler 接口提供了一个单独的方法:
Object handle (java.sql.ResultSet .rs)。
--------------------------------------------------------------------------------
<4> ResultSetHandler 接口的实现类
a. ArrayHandler:把结果集中的第一行数据转成对象数组。
b. ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到 List 中。
c. BeanHandler:将结果集中的第一行数据封装到一个对应的 JavaBean 实例中。
d. BeanListHandler:将结果集中的每一行数据都封装到一个对应的 JavaBean 实例中,存放到 List里。
e. ColumnListHandler:将结果集中某一列的数据存放到 List 中。
f. KeyedHandler:将结果集中的每一行数据都封装到一个 Map 里,然后再根据指定的key把每个 Map 再存放到一个 Map 里。
g. MapHandler:将结果集中的第一行数据封装到一个 Map 里,key 是列名,value 就是对应的值。
h. MapListHandler:将结果集中的每一行数据都封装到一个 Map 里,然后再存放到 List。
i. ScalarHandler:将结果集中某一条记录的其中某一列的数据存成 Object。
--------------------------------------------------------------------------------
<5> 下面是简单对这几个工具类的测试代码:
QueryRunner runner = null;
runner = new QueryRunner();// 获得QueryRunner类的实例对象
Connection conn = null;
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
conn = DriverManager.getConnection("jdbc:mysql://localhost:3309/bookstore",
"root", "1230");// 与数据库建立连接
String sql = "SELECT id, name, title, price, yr, description, saleAmount FROM books

WHERE id = ?";// 准备 sql 语句
List<Book> list = (List) runner.query(conn, sql, new Object[]{"201"}, new

BeanListHandler(Book.class));// 运用 QueryRunner 的方法执行 sql 语句,并获取结果集,从这里可

//以看出运用 commons-dbutils 类库的方便之处,避免了创建 ResultSet 对象来设置参数的麻烦。
System.out.println(books.size()); //输出 books 的元素个数


--------------------------------------------------------------------------------
<6> 其它类和接口:
a. org.apache.commons.dbutils.QueryLoader类:属性文件加载器,主要用于加载属性文件中的 SQL 到内存中。
b. org.apache.commons.dbutils.wrappers.SqlNullCheckedResultSet类:该类是用来对sql语句执行完成

之后的的数值进行null的替换。
c. org.apache.commons.dbutils.wrappers.StringTrimmedResultSet类:去除ResultSet中字段的左右空格。
d. org.apache.commons.dbutils.RowProcessor接口:提供了把结果集的行数据转换成其它格式的功能。它的实现类是org.apache.commons.dbutils.BasicRowProcessor类。
分享到:
评论

相关推荐

    commons-dbutils-1.6的jar包

    好用的commons-dbutils-1.6的jar工具包,其中是包含3个:commons-dbutils-1.6.jar、commons-dbutils-1.6-javadoc.jar和commons-dbutils-1.6-sources.jar

    commons-dbutils-1.6

    Apache Commons DBUtils是Java开发中的一个实用工具库,主要用于简化JDBC(Java Database Connectivity)的使用。这个项目在1.6版本中包含了两个主要的jar文件:`commons-dbutils-1.6.jar`和`commons-dbutils-1.6-...

    commons-dbutils.jar.rar

    要在项目中使用DBUtils,首先需要将对应的jar包添加到项目的类路径中,然后可以通过创建QueryRunner实例,配合ResultSetHandler,轻松地执行SQL查询和更新操作。 总之,`commons-dbutils.jar.rar` 提供了不同版本...

    Commons-dbutils1.7 jar包.rar

    commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行增删改...

    commons-dbutils-1.4.jar

    Apache Commons DBUtils是Apache软件基金会开发的一个开源项目,它提供了一套简洁、高效且实用的工具类,用于简化Java应用程序中的数据库操作。这个项目的最新版本为"commons-dbutils-1.4.jar",它的主要目标是减轻...

    commons-dbutils-1.6.rar所有jar包

    总的来说,Apache Commons DBUtils是Java开发中一个强大的数据库工具库,它的出现大大简化了JDBC的使用,提高了开发效率和代码的可读性。对于需要处理数据库操作的Java项目,DBUtils是一个值得考虑的选择。

    commons-dbutils.jarv1.6官方免费版

    commons-dbutils.jar是在java架构开发时十分重要的一款.jar包,正确的使用commons dbutils可以让你的开发事半功倍,如果您在开发过程中缺少这款jar包,马上来下载commonsdbutils jar包吧! 软件功能: commons-...

    commons-dbutils-1.3.zip

    Apache Commons DBUtils是一个Java库,它简化了与数据库交互的任务,是Java开发中常用的数据访问工具。这个压缩包“commons-dbutils-1.3.zip”包含的是DBUtils库的1.3版本。DBUtils库是Apache Commons项目的一部分,...

    commons-dbutils-1.6.jar包

    包org.apache.commons.dbutils DbUtils是一个为简化JDBC操作的小类库. 接口摘要 ResultSetHandler 将ResultSet转换为别的对象的工具. RowProcessor 将ResultSet行转换为别的对象的工具. 类摘要 BasicRowProcessor ...

    commons-dbutils-1.1,commons-dbutils-1.3资源包

    DBUtils的核心类和接口位于`org.apache.commons.dbutils`包下,可以直接导入使用。 例如,要执行一个SQL查询并获取结果集的Bean列表,可以这样做: ```java QueryRunner runner = new QueryRunner(); List&lt;MyBean&gt;...

    commons-dbutils-1.5

    总的来说,"commons-dbutils-1.5"是一个轻量级的数据库操作工具,适合那些需要快速、简单数据库访问的项目。它的设计思想和功能在当时(2007年发布)是非常先进的,至今仍然在许多小型项目中广泛使用。如果你正在...

    commons-dbutils-1.4 bin+src

    Apache Commons DBUtils是一个Java库,它为数据库操作提供了一些实用工具和抽象,简化了数据库编程。这个"commons-dbutils-1.4 bin+src"压缩包包含两个关键文件:`commons-dbutils-1.4-sources.jar`和`commons-...

    commons-dbutils-1.7-bin,commons-dbutils 1.7 的ar

    在使用DBUtils时,开发人员通常需要先配置数据库连接参数,然后创建并初始化DBUtils工具类,接着就可以利用QueryRunner和相应的ResultSetHandler进行数据库操作。由于它的简单易用和强大的功能,Apache Commons ...

    JavaWeb需要用到的jar包_jar包_javaweb_commons-dbutils-1.3_

    Commons-DbUtils是Apache的一个开源项目,它提供了一个简单且实用的数据库操作工具包。DbUtils的主要功能包括:连接池管理、SQL执行、结果集处理等。DbUtils与JDBC结合使用,可以避免大量重复的数据库连接关闭、...

    commons-dbutils-1.7-src.zip

    Apache Commons DBUtils是一个Java库,它为数据库操作提供了一个简单且有效的抽象层,使得开发者能够更轻松地处理数据库连接、查询和其他操作。这个"commons-dbutils-1.7-src.zip"压缩包包含了DBUtils 1.7版本的源...

    commons-dbutils-1.7.zip

    Apache Commons DBUtils是一个Java库,它为数据库操作提供了一些实用工具和帮助类,极大地简化了JDBC编程。这个"commons-dbutils-1.7.zip"压缩包包含了版本1.7的DBUtils库,这是一个在2005年发布的稳定版本。DBUtils...

    commons-dbutils-1.3

    Apache Commons DBUtils是Java开发中的一个实用工具库,专门用于简化数据库操作。它是一个轻量级的框架,基于Java JDBC API,旨在使数据库编程变得更加简单和健壮。这个"commons-dbutils-1.3"版本是该库的一个早期...

    commons-dbutils-1.2.rar

    总的来说,Apache Commons DBUtils 1.2是一个用于简化Java数据库编程的工具包,它通过提供实用的工具类和方法,帮助开发者更高效、安全地处理数据库交互。如果你正在用Java进行数据库开发,这个库是值得考虑的工具之...

Global site tag (gtag.js) - Google Analytics