开源的JDBC工具类库,对JDBC的简单封装
DBUtils类
-
public static void close(……) throws java.sql.SQLException
DBUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不是的话,他们就关闭Connection,Statement和ResultSet -
public static void closeQuietly(……)
这一类方法不仅能在Connection,Statement和ResultSet为NULL的情况下不避免关闭,还能隐藏一些在程序中抛出的SQLEception -
public static void commitAndClose(Connection conn) throws SQLException
用来提交连接的事务,然后关闭连接 -
public static void commitAndCloseQuietly(Connection conn)
用来提交连接的事务,然后关闭连接,并且在关闭连接时不抛出SQL异常 -
public static void rollback(Connection conn) throws SQLException
允许conn为null,因为方法内部做了判断 -
public static void rollbackAndClose(Connection conn) throws SQLException
-
rollbackAndCloseQuietly(Connection)
-
public static boolean loadDriver(java.lang.String driverClassName)
这一方法装载并注册JDBC驱动程序,如果成功就返回true。使用该方法,你不需要捕捉这个异常ClassNotFoundException
QueryRunner类
该类封装了SQL的执行,是线性安全的。
- 可以实现增,删,改,查,批处理
- 考虑了事务处理需要共用Connection
- 该类最主要的就是简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少代码量
QueryRunner类提供了两个构造方法:
- QueryRunner():默认的构造方法
- QueryRunner(DataSource ds):需要一个java.sql.DataSource来作参数的构造方法
更新
public int update(Connection conn,String sql,Object…… params)throws SQLException
:
用来执行一个更新(插入,更新或删除)操作
插入
public <T> T insert(Connection conn,String sql,ResultSetHandler<T> rsh,Object…… params)throws SQLException
:
只支持INSERT语句,返回值:An object generated by the handler.即自动生成的键值
批处理
public int[] batch(Connection conn,String sql,Object[][] params)throws SQLException
:
INSERT,UPDATE,DELETE语句
public <T> T insertBatch(Connection conn,String sql,ResultSetHandler<T> rsh,Object[][] params)throws SQLException
:
只支持INSERT语句
使用QueryRunner类实现
public Object query(Connection conn,String sql,ResultSetHandler rsh,Object…… params)throws SQLException
:
执行一个查询操作,在中国查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理PreparedStatement和ResultSet的创建和关闭