博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache——DBUtils框架ResultSetHandler接口使用
阅读量:5967 次
发布时间:2019-06-19

本文共 2250 字,大约阅读时间需要 7 分钟。

参考链接:http://i.cnblogs.com/EditPosts.aspx?opt=1

简介

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

    API介绍:
         org.apache.commons.dbutils.QueryRunner --- 核心
         org.apache.commons.dbutils.ResultSetHandler
    工具类
         org.apache.commons.dbutils.DbUtils。  

 

DbUtils类

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

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

        public static void closeQuietly(...):这一类方法不仅能在Connection、Statement和ResultSet为NULL情况下关闭,还能隐藏一些在程序中抛出的SQLException。

        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 int update(Connection conn, String sql, Object...params)

        public int update(String sql,Object...params)

    查询操作

        public Object query(Connection conn, String sql, ResultSetHandler rsh, Object...params)

        public Object query(String sql, ResultSetHandler rsh, Object...params)

 

ResultSetHandler接口

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

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

ResultSetHandler接口的实现类

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

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

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

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

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

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

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

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

    ScalarHandler:获取结果集中第一行数据指定列的值,常用来进行单值查询

    如:Long long = (Long)queryRunner.query("select count(*) from account",new ScalarHandler(1));//进行单值查询

 

 

-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------

 

转载于:https://www.cnblogs.com/ieayoio/p/5253568.html

你可能感兴趣的文章
切图崽的自我修养-[ES6] 编程风格规范
查看>>
服务器迁移小记
查看>>
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
ElasticSearch Client详解
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
通过IP判断登录地址
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
Beta冲刺——day6
查看>>
在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
查看>>
代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
查看>>
关于在VS2005中编写DLL遇到 C4251 警告的解决办法
查看>>
提高信息安全意识对网络勒索病毒说不
查看>>
使用Jquery 加载页面时调用JS
查看>>
css+div+jquery弹出层
查看>>
求职相关(链接,不定期更新)
查看>>
pdo 连接数据库 报错 could not find driver 解决方法
查看>>