DBUtils工具

API介绍

为了更加简单地使用JDBC,Apache组织提供了一个工具类库commons-dbutils组件。

该组件实现了对JDBC的简单封装,可以在不影响性能的情况下极大简化JDBC的编码工作量。



commons-dbutils的核心是两个类和一个接口:DBUtils类、QueryRunner类、ResultSetHandler接口

DBUtils类

主要为如关闭连接、装载JDBC驱动程序之类的常规工作提供方法,它提供的方法都是静态方法

    close() 

    closeQuietly(Connection conn,Statement stmt,ResultSet rs)

    commitAndCloseQuietly(Connection conn)

    loadDriver(java.lang.String driverClassName)

QueryRunner类


简化了执行SQL语句的代码,它与ResultSetHandler组合在一起就能完成大部分的数据库操作,大大减少编码量。针对不同的数据库操作,QueryRunner类提供的不同的方法。

    query(Connection conn, String sql, ResultSetHandler rsh,Object[] params) 

    query(String sql, ResultSetHandler rsh, Object[] params)

    query(Connection conn, String sql, ResultSetHandler rsh)

    update(Connection conn, String sql, Object[] params)

    update(Connection conn, String sql)

ResultSetHandler接口


用于处理ResultSet结果集,它可以将结果集中的数据转为不同的形式,根据结果集中数据类型的不同,ResultSetHandler提供了不同的实现类。



    AbstractKeyedHandler
该类为抽象类,能够把结果集里面的数据转换为用Map存储。

    AbstractListHandler
该类为抽象类,能够把结果集里面的数据转换为用List存储,抽象类。

    ArrayHandler
把结果集中的第一行数据转成对象数组。

    ArrayListHandler
把结果集中的每一行数据都转成一个对象数组,再将数组存放到List中。

    BaseResultSetHandler
把结果集转换成其他对象的扩展。

    BeanHandler
将结果集中的第一行数据封装到一个对应的JavaBean实例中。

    BeanListHandler
将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。

    BeanMapHandler
将结果集中的每一行数据都封装到一个对应的JavaBean实例中,然后再根据指定的key把每个JavaBean再存放到一个Map里。

    ColumnListHandler
将结果集中某一列的数据存放到List中。

    KeyedHandler
将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。

    MapHandler
将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。

    MapListHandler
将结果集中的每一行数据都封装到一个Map里,然后再存放到List中。

ScalarHandler
将结果集中某一条记录的其中某一列的数据存储成Object对象。

ResultSetHandler实现类


ArrayHandler和ArrayListHandler


可以将把结果集中的第一行数据转成对象数组。

Beanhandler、BeanListHandler和BeanMapHandler


将结果集中的数据封装到对应的JavaBean实例中,这也是实际开发中最常用的结果集处理方法。

MapHandler和MapListHandler


将结果集数据存成Map映射。

ColumnListHandler


当我们需要查询结果集中的一列数据时,可以使用ColumnListHandler类。

ScalarHandler


如果需要输出结果集中一行数据的指定字段值,可以使用ScalarHandler类。

KeyedHandler


如果需要输出结果集中一行数据的指定字段值,可以使用KeyedHandler类。

最新文章

  1. 使用openvswitch 和dnsmasq来实现虚拟机网络隔离
  2. 用javascript简单封装AJAX
  3. java 静态函数锁对象说明
  4. supersocket+controller+action
  5. Java 二进制与十六进制转换
  6. IOS开发之——CocoaPods安装和使用 OC和swift通吃
  7. Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称
  8. Tomcat遇到”Error listenerStart”或”Error filterStart”问题且无详细日志时的log配置.
  9. 客户端访问WebService和PageMethod
  10. 使用air进行移动app开发常见功能和问题(一)
  11. ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables opt
  12. C# 订单流水号生成
  13. treeview和listview的用法
  14. iOS 网络编程模式总结
  15. Redis.之.环境搭建(集群)
  16. python易错题之作用域
  17. ionic 下拉选择框中默认显示传入的参数
  18. linux下添加分区并挂载目录、卸载并删除分区
  19. LeetCode赛题----Find Left Most Element
  20. [NOI2009]诗人小G --- DP + 决策单调性

热门文章

  1. iOS登录单例
  2. c++11特性与cocos2d-x 3.0之std::bind与std::function
  3. Python中的相对文件路径的调用
  4. 关于HTML、XHTML、CSS、XML的区别
  5. python 字符和数值转换
  6. 关于Java开发过程中质量提升-2自动化
  7. Codeforces Round #257 (Div. 2) E题:Jzzhu and Apples 模拟
  8. LUA中获得服务器IP
  9. Hibernate-HQL&QBC基础使用(分页)
  10. 第二百八十四节,MySQL数据库-MySQL触发器