apache commons 之 DbUtils简介

apachecommons dbutils 是 Apache 组织提供的一个开源 JDBC 工具类库,对传统操作数据库的类进行二次封装,可以把结果集转化成List。

目前最新的版本是1.6。

官网地址为:http://commons.apache.org/proper/commons-dbutils/

DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。

  在使用DBUtils之前,应该注意一些问题:

  1、DBUtils是JDBC的简单封装,可以和JDBC混合使用。

  2、DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean的规范,其次Bean的getter与setter方法的名字与结果集的列名一一对应,而不要求JavaBean的私有成员与表结果集列名一一对应。

  3、DBUtils可以将结果集封装为各种类型,主要有:Bean/List<Bean>,Map/List<Map>/Map<Map>,数组/List<数组>,列/List<列>,这些类型。

  4、DBUtils执行插入操作的时候,无法返回自增主键,可以通过变通的方法来实现,比如先获取一个sequence,然后把这个sequence插入数据库中,并且返回这个sequence即可。

  5、DBUtils的性能和JDBC性能是一样,测试过程中没发现性能损失,拥有了很高性能的同时,而不失JDBC的灵活性。

DbUtils类

诸如关闭连接、装载JDBC驱动程序之类的常规工作提供有用方法的类,它里面所有的方法都是静态的。

A:loadDriver(StringdriveClassName): 这一方法装载并注册JDBC驱动程序,如果成功就返回TRUE,不需要去捕捉ClassNotFoundException异常。通过返回值判断驱动程序是否加载成功。

B:close方法:DbUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不是的话,它们就关闭连接(Connection)、声明(Statement)或者结果集(ResultSet)对象。

QueryRunner类

该类简单化了SQL 查询,它与 ResultSetHandler(接口 后面将会介绍) 组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量

【构造函数(1):QueryRunner() (2):QueryRunner(Datasource ds)】。

A:query(Connectionconn, String sql, Object[]params, ResultSetHandler rsh)方法:这一方法执行一个带参数的选择查询,在这个查询中,对象阵列的值被用来作为查询的置换参数。这一方法内在地处理PreparedStatement和ResultSet 的创建和关闭。ResultSetHandler对象把从 ResultSet得来的数据转变成一个更容易的或是应用程序特定的格式来使用。

ResultSetHandler接口

正如它的名字所示,这一接口执行处理一个java.sql.ResultSet,将数据转变并处理为任何一种形式,这样有益于其应用而且使用起来更容易。这一组件提供了

ArrayHandler :将ResultSet中第一行的数据转化成对象数组

总结一下,其实就是三个主要功能:

1.    连接关闭数据库;

2.    数据库处理;

3.    结果处理

时间: 2024-11-11 16:50:49

apache commons 之 DbUtils简介的相关文章

Apache Commons Configuration之一简介

1    简介 Commons Configuration软件类库提供通用配置接口,使Java应用程序从多种源读取配置文件.Commons Configuration提供简单类型访问和通过以下代码演示的多义配置参数: Double double = config.getDouble("number"); Integer integer = config.getInteger("number"); 配置参数可以从以下源加载: Properties文件 XML文档 Pr

Apache Commons工具集简介

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍. 组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES.SHA1.MD5.Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库. Con

(转)Apache Commons工具集简介

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍.文中用了很多网上现成的东西,我只是做了一个汇总整理. 一.Commons BeanUtils http://jakarta.apache.org/commons/beanutils/index.html 说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装. 使用示例:功能有很多,网站上有详细

apache commons Java包简介

更多信息,请参考:http://commons.apache.org/ 一.Commons BeanUtils说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装. 二.Commons CLI说明:这是一个处理命令的工具.比如main方法输入的string[]需要解析.你可以预先定义好参数的规则,然后就可以调用CLI来解析. 三.Commons Codec说明:这个工具是用来编码和解码的,包括Base64,URL,Sound

apache commons 之 DbUtils QueryRunner使用之迷雾重重

DbUtils 和 DBCP一般需要一起使用. 在ORALCE环境下运行. 首先创建一张表,创建表语句. create table tb_user(USERNAME varchar2(64)  ,PASSWORD  varchar2(64)); 首先来看一段程序运行后的异常: Exception in thread "main"java.lang.AbstractMethodError atorg.apache.commons.dbcp.DelegatingPreparedStatem

apache commons Math的简介和使用

apache commons Math是一组偏向科学计算为主的函数,主要是针对线性代数,数学分析,概率和统计等方面. 我虽然是数学专业毕业,当年也是抱着<数学分析>啃,但是好久不用,这些概念都开始生疏,写一点例子,仅作参考. packagetest.ffm83.commons.math; importorg.apache.commons.math3.linear.Array2DRowRealMatrix; import org.apache.commons.math3.linear.LUDec

apache commons 之 transcation 简介和文件事务系统的实现

Apache Commons Transaction 旨在提供一个轻量级.标准化.高效的 Java 事务多线程编程的工具包,实现了多级锁.事务集合和事务级文件访问. 事务处理系统对数据库使用者来说,是非常熟悉的事情:但是如果将事务处理系统从数据库转移到文件系统上,估计很多同学都要一筹莫展了.实际上,无论库/框架.语言,或者文件系统级别,对文件系统操作事务的支持一直都很薄弱. 单独看一些文件系统操作(比如文件重命名.删除等),它们是原子的,但是从目前的情况看,很少有解决办法能够形成一组综合的API

Apache commons 之 codec 简介和入门代码

Java JDK有一个 java.security 的 package, 提供了 MessageDigest 的编码方式, Digest Algorithms 包括了 MD2, MD5, SHA-1, SHA-256, SHA-384, 及 SHA-512 等等: Codec 是Commons项目中用来处理常用的编码方法的工具类包,例如HEX.SHA1.MD5.Base64等等目前最新版本为1.4. Base64/HEX是对称加密,MD5是不可逆加密,千万要注意 一些简单的加密示例代码: pac

高性能jdbc封装工具 Apache Commons DbUtils 1.6

转载自原文地址:http://gao-xianglong.iteye.com/blog/2166444 前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更多的是依靠Hibernate.Ibatis.Spring JDBC.JPA等大厂提供的持久层技术解决方案,或者是企业内部自己研发的持久层技术.但无论如何,使用这些技术的初衷和本质都是为了能够减少企业开发成本,提高生产效率,降低耦合. 放眼企业级项目,Hibernate等ORM产品是首选,而互联网领域,大