Apache—DBUtils框架简介、DbUtils类、QueryRunner类 、ResultSetHandler接口

转载 2016年08月30日 17:35:03

Apache—DBUtils框架简介、DbUtils、QueryRunner类 、ResultSetHandler接口

commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。

API介绍:

org.apache.commons.dbutils.QueryRunner --BDManager

org.apache.commons.dbutils.ResultSetHandler—处理结果集

工具类

org.apache.commons.dbutils.DbUtils、。

DbUtils类 

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

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

public static void closeQuietly(…): 这一类方法不仅能在ConnectionStatementResultSetNULL情况下避免关闭,还能隐藏一些在程序中抛出的SQLEeception

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

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

QueryRunner类 

该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。

QueryRunner类提供了两个构造方法:

默认的构造方法

需要一个 javax.sql.DataSource 来作参数的构造方法。

QueryRunner类的主要方法

public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭。

public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException: 几乎与第一种方法一样;唯一的不同在于它不将数据库连接提供给方法,并且它是从提供给构造方法的数据源(DataSource) 或使用的setDataSource 方法中重新获得 Connection

public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException : 执行一个不需要置换参数的查询操作。

public int update(Connection conn, String sql, Object[] params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。

public int update(Connection conn, String sql) throws SQLException:用来执行一个不需要置换参数的更新操作。

ResultSetHandler接口 

该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。

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

ResultSetHandler 接口的实现类

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

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

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

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

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

KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key

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

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

使用Jdbc操作多个表

部门和员工(一对多关系)

对象关系                                 数据库关系

老师和学生(多对多关系)

注意事项

不管java的对象存在何种关系,反映到关系型数据库中,都是使用外键表示纪录(即对象)的关联关系。

设计java对象如涉及到多个对象相互引用,要尽量避免使用一对多,或多对多关系,而应使用多对一描述对象之间的关系(或使用延迟加载的方式)

相关文章推荐

Apache—DBUtils框架简介、DbUtils类、QueryRunner类 、ResultSetHandler接口

Apache—DBUtils框架简介、DbUtils类、QueryRunner类 、ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDB...

JNDI技术简介和Apache—DBUtils框架(QueryRunner类)

这里拷一下PPT中的内容。 JNDI技术简介 JNDI(JavaNaming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.naming...

Apache的DBUtils框架的查询结果处理器的使用(ResultSetHandler接口的子类)

1。导包 (1).commons-dbcp-1.4.jar (2)commons-dbutils-1.4.jar (3)commons-pool-1.5.6.jar (4)mysql-conn...

DBUtils学习之——使用ResultSetHandler接口的各个实现类实现数据库的增删改查

本例展示的是使用ResultSetHandler接口的几个常见实现类实现数据库的增删改查,可以大大减少代码量,优化程序。

使用DbUtils实现增删改查——ResultSetHandler 接口的实现类

在上一篇文章中《使用DbUtils实现增删改查》,发现执行runner.query()这行代码时,需要自己去处理查询到的结果集,比较麻烦。这行代码的原型是: public Object query(...
  • dwyers
  • dwyers
  • 2014-08-28 09:01
  • 1123

使用DbUtils实现增删改查——ResultSetHandler接口的实现类

转载自别人的 使用DbUtils实现增删改查——ResultSetHandler接口的实现类 public class RSHanlderDemo { //ScalarHand...

DbUtils之ResultSetHandler的实现类

通过使用queryRunner的查询方法,我们知道其使用了回调机制。 下面就对其中的参数ResultSetHandler 的实现类进行不同的查询。 ResultSetHandler 接口用于处...

【DButils学习之】利用ResultSetHandler各实现类来处理查询结果

ResultSetHandler的各个实现类: ArrayHandler:把结果集中的第一行数据转成对象数组。 ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到...

DbUtils 中ResultSetHandler接口的九大实现对象

执行runner.query()这行代码时,需要自己去处理查询到的结果集,比较麻烦。这行代码的原型是: ? 1 public Object ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)