`

apache commons-dbutils

    博客分类:
  • java
阅读更多

一、关于DbUtils
    commons-dbutils 是 Apache 组织提供的一个开源 JDBC 工具类库,对传

统操作数据库的类进行二次封装,可以把结果集转化成List。
项目主页: http://commons.apache.org/dbutils/
文档地址: http://commons.apache.org/dbutils/examples.html
下载地址:http://commons.apache.org/downloads/download_dbutils.cgi

(1)org.apache.commons.dbutils
DbUtils  : 提供如关闭连接、装载 JDBC 驱动程序等常规工作的工具类
QueryRunner : 该类简单化了 SQL 查询,它与 ResultSetHandler 组合在一起

使用可以完成大部分的数据库操作,能够大大减少编码量。
QueryLoader : 属性文件加载器,主要用于加载属性文件中的 SQL 到内存中。

(2)org.apache.commons.dbutils.handlers
ArrayHandler :将ResultSet中第一行的数据转化成对象数组
ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是

Object[]
BeanHandler :将ResultSet中第一行的数据转化成类对象
BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类

对象
ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是

Object对象
KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map。Map中存放

的是数据
MapHandler :将ResultSet中第一行的数据存成Map映射
MapListHandler :将ResultSet中所有的数据存成List。List中存放的是Map
ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object

(3)org.apache.commons.dbutils.wrappers
SqlNullCheckedResultSet :该类是用来对sql语句执行完成之后的的数值进行

null的替换。
StringTrimmedResultSet :去除ResultSet中中字段的左右空格。Trim()

二、例子
Java代码

   1. public class TestDbUtils {  
   2.   
   3.     /**
   4.      * BeanListHandler :将ResultSet中所有的数据转化成List,

List中存放的是类对象
   5.      */  
   6.     public static void getBeanListData() {  
   7.         Connection conn = getConnection();  
   8.         QueryRunner qr = new QueryRunner();  
   9.         try {  
  10.             ResultSetHandler rsh = new BeanHandler

(TUser.class);  
  11.             TUser usr = (TUser) qr.query(conn,"SELECT

id,username,gender FROM t_user WHERE id=10000",rsh);  
  12.             System.out.println(StringUtils.center("findById",

50, '*'));  
  13.             System.out.println("id=" + usr.getId() + " name=" +

usr.getUsername() + " gender=" + usr.getGender());  
  14.               
  15.             List results = (List) qr.query(conn,"SELECT

id,username,gender FROM t_user",  
  16.                     new BeanListHandler(TUser.class));  
  17.             System.out.println(StringUtils.center("findAll",

50, '*'));  
  18.             for (int i = 0; i < results.size(); i++) {  
  19.                 TUser user = (TUser) results.get(i);  
  20.                 System.out.println("id=" + user.getId() + "  

name=" + user.getUsername() + "  gender=" + user.getGender());  
  21.             }  
  22.         } catch (SQLException e) {  
  23.             e.printStackTrace();  
  24.         } finally {  
  25.             DbUtils.closeQuietly(conn);  
  26.         }  
  27.     }  
  28.   
  29.     /**
  30.      * MapListHandler :将ResultSet中所有的数据存成List。List中

存放的是Map
  31.      */  
  32.     public static void getMapListData() {  
  33.         Connection conn = getConnection();  
  34.         QueryRunner qr = new QueryRunner();  
  35.         try {  
  36.             List results = (List) qr.query(conn,"SELECT

id,username,gender FROM t_user",  
  37.                     new MapListHandler());  
  38.             for (int i = 0; i < results.size(); i++) {  
  39.                 Map map = (Map) results.get(i);  
  40.                 System.out.println("id=" + map.get("id") + "

name=" + map.get("username") + " gender=" + map.get("gender"));  
  41.             }  
  42.         } catch (SQLException e) {  
  43.             e.printStackTrace();  
  44.         } finally {  
  45.             DbUtils.closeQuietly(conn);  
  46.         }  
  47.     }  
  48.   
  49.     /**
  50.      *新增和更新例子
  51.      */  
  52.     public static void insertAndUpdateData(){  
  53.         Connection conn = getConnection();  
  54.         QueryRunner qr = new QueryRunner();  
  55.         try{  
  56.             //创建一个数组来存要insert的数据  
  57.             Object[] insertParams = {"John Doe",

"000000","男"};  
  58.             int inserts = qr.update(conn, "INSERT INTO t_user

(username,password,gender) VALUES (?,?,?)",  
  59.                     insertParams );  
  60.             System.out.println("inserted " + inserts + "

data");  
  61.               
  62.             Object[] updateParams = {"111111", "John Doe"};  
  63.             int updates = qr.update(conn, "UPDATE t_user SET

password=? WHERE username=?",  
  64.                                       updateParams );  
  65.             System.out.println("updated "+ updates + " data");  
  66.         }catch (SQLException e) {  
  67.             e.printStackTrace();  
  68.         } finally {  
  69.             DbUtils.closeQuietly(conn);  
  70.         }  
  71.     }  
  72.   
  73.     /**
  74.      * Unlike some other classes in DbUtils, this class

(SqlNullCheckedResultSet) is NOT thread-safe.
  75.      */  
  76.     public static void findUseSqlNullCheckedResultSet(){  
  77.         Connection conn = getConnection();  
  78.         try{  
  79.             Statement stmt = conn.createStatement();  
  80.             ResultSet rs = stmt.executeQuery("SELECT id,

username, gender FROM t_user");  
  81.             SqlNullCheckedResultSet wrapper = new

SqlNullCheckedResultSet(rs);  
  82.             wrapper.setNullString("N/A"); // Set null string  
  83.             rs = ProxyFactory.instance().createResultSet

(wrapper);  
  84.               
  85.             while(rs.next()){  
  86.                 System.out.println("id="+rs.getInt("id") + "

username=" + rs.getString("username")  
  87.                         + " gender="+rs.getString("gender"));  
  88.             }  
  89.               
  90.             rs.close();  
  91.         }catch(Exception e){  
  92.             e.printStackTrace();  
  93.         }finally{  
  94.             DbUtils.closeQuietly(conn);  
  95.         }  
  96.     }  
  97.       
  98.     /****数据库连接*** */  
  99.     public static Connection getConnection() {  
 100.         Connection conn = null;  
 101.         String driver = "com.mysql.jdbc.Driver";  
 102.         String url = "jdbc:mysql://127.0.0.1/springapp?

useUnicode=true&characterEncoding=gb2312";  
 103.   
 104.         DbUtils.loadDriver(driver);  
 105.   
 106.         try {  
 107.             conn = DriverManager.getConnection(url, "root",

"root");  
 108.         } catch (SQLException ex) {  
 109.             ex.printStackTrace();  
 110.         }  
 111.         return conn;  
 112.     }  
 113.       
 114. }

分享到:
评论

相关推荐

    commons-dbutils-1.7-API文档-中文版.zip

    赠送jar包:commons-dbutils-1.7.jar; 赠送原API文档:commons-dbutils-1.7-javadoc.jar; 赠送源代码:commons-dbutils-1.7-sources.jar; 赠送Maven依赖信息文件:commons-dbutils-1.7.pom; 包含翻译后的API文档...

    commons-dbutils.jar.rar

    - `commons-dbutils-1.6.jar`: 相对于1.3版,可能会有性能改进、bug修复和新功能的添加。 - `commons-dbutils-1.7.jar`: 最新版本,通常会提供更好的兼容性和更多的改进。 5. **使用场景** DBUtils适用于那些...

    commons-dbutils-1.6

    这个项目在1.6版本中包含了两个主要的jar文件:`commons-dbutils-1.6.jar`和`commons-dbutils-1.6-sources.jar`。 `commons-dbutils-1.6.jar`是运行时库,它提供了大量的静态方法来处理数据库操作。这个库的核心...

    commons-dbutils-1.4.jar

    在实际项目中,"commons-dbutils-1.4.jar"可以与Apache的另一个项目——Apache Commons DBCP(数据库连接池)配合使用,以实现数据库连接的池化管理,进一步提升系统性能。例如,可以通过BasicDataSource来配置和...

    commons-dbutils-1.8.1.jar

    commons-dbutils-1.8.1.jar

    commons-dbutils-1.6.rar所有jar包

    这个压缩包文件"commons-dbutils-1.6.rar"包含了DBUtils的1.6版本,这是一个非常受欢迎的开源项目,用于简化Java数据库编程。DBUtils的核心理念是通过提供实用程序类来消除JDBC的繁琐和易错性,使开发人员能够更专注...

    commons-dbutils-1.6.jar

    commons-dbutils-1.6.jar

    commons-dbutils-1.4 bin+src

    这个"commons-dbutils-1.4 bin+src"压缩包包含两个关键文件:`commons-dbutils-1.4-sources.jar`和`commons-dbutils-1.4.jar`。 1. `commons-dbutils-1.4.jar`: 这是DBUtils库的二进制版本,包含了编译后的Java类...

    commons-dbutils-1.3.zip

    这个压缩包“commons-dbutils-1.3.zip”包含的是DBUtils库的1.3版本。DBUtils库是Apache Commons项目的一部分,旨在提供一个简单、安全的方式来处理数据库操作,减少与数据库交互时出现的常见错误。 DBUtils的核心...

    commons-dbutils-1.5

    这个"commons-dbutils-1.5"版本是DBUtils项目的早期稳定版本,它包含了对早期JDBC API的良好封装,旨在减少代码量并提高容错性。 DBUtils的核心设计理念是基于数据库操作的事务管理和异常处理,它通过简化常见任务...

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

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

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

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

    Commons-dbutils1.7 jar包.rar

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

    commons-dbutils-1.3

    这个"commons-dbutils-1.3"版本是该库的一个早期版本,但仍然在许多项目中广泛使用,因为它提供了一些核心功能,比如查询结果的处理和异常处理。 DBUtils的核心功能主要包括以下几个方面: 1. **结果集处理**:...

    commons-dbutils-1.7

    Apache Commons DbUtils是Java开发中的一个实用工具库,专门针对JDBC(Java Database Connectivity)进行优化,以提供更简洁、高效的数据库操作API。这个库在Java社区中广泛使用,因为它大大减轻了开发者处理数据库...

    commons-dbutils-1.6.jar包

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

    commons-dbutils-1.2.rar

    这个"commons-dbutils-1.2.rar"文件包含了Apache Commons DBUtils的1.2版本,这是一个历史悠久且广泛使用的开源组件,适用于Java开发人员。 Apache Commons DBUtils的核心功能包括: 1. **查询处理**:DBUtils提供...

    java web中的commons-dbutils-1.3-bin.zip

    标题提到的"commons-dbutils-1.3-bin.zip"正是这个库的1.3版本的二进制包。接下来,我们将深入探讨Apache Commons DBUtils以及它在Java Web应用中的作用。 Apache Commons DBUtils是Apache软件基金会开源项目之一,...

Global site tag (gtag.js) - Google Analytics