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类。

Java精选笔记_DBUtils工具的更多相关文章

  1. Java精选笔记_Java入门

    Java概述 什么是Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言 JavaSE标准版 是为开发普通桌面和商务应用程序提供的解决方案 JavaEE企业版 是为开发企业级应用程序提供的解 ...

  2. Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)

    集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...

  3. Java精选笔记_JavaBean

    JavaBean组件 初始JavaBean JavaBean是Java开发语言中一个可以重复使用的软件组件,它本质上就是一个Java类. 一个标准的JavaBean组件需要遵循一定的编码规范,具体如下 ...

  4. Java精选笔记_JSP技术

    JSP技术 JSP概述 什么是JSP 在JSP全名是Java Server Page,它是建立在Servlet规范之上的动态网页开发技术. 在JSP文件中,HTML代码与Java代码共同存在,其中,H ...

  5. Java精选笔记_多线程(创建、生命周期及状态转换、调度、同步、通信)

    线程概述 在应用程序中,不同的程序块是可以同时运行的,这种多个程序块同时运行的现象被称作并发执行. 多线程可以使程序在同一时间内完成很多操作. 多线程就是指一个应用程序中有多条并发执行的线索,每条线索 ...

  6. Java精选笔记_面向对象(包、访问控制、内存机制、垃圾回收机制)

    包 包的定义与使用 专门用来存放类的,通常功能相同的类存放在相同的包中. 包的声明只能位于Java源文件的第一行 Java语言中的常用包 java.lang:包含Java语言的核心类,如String. ...

  7. Java精选笔记_面向对象(构造方法、this关键字、static关键字、内部类)

    构造方法constructor构造器 构造方法的定义 [修饰符]  类名 (形式参数列表){         //语句 } 构造器用于构造该类的实例.作用:用来初始化对象!一般由系统在创建对象(即类的 ...

  8. Java精选笔记_国际化

    国际化 什么是国际化 指软件在开发时就应该具备支持多种语言和地区的功能,当应对不同国家和地区的用户访问,针对不同国家和地区的用户,提供相应的.符合来访者阅读习惯的页面和数据. 由于国际化interna ...

  9. Java精选笔记_自定义标签

    自定义标签 自定义标签入门 什么是自定义标签 自定义标签可以有效地将HTML代码与Java代码分离,从而使不懂Java编程的HTML设计人员也可以编写出功能强大的JSP页面 JSP规范中定义了多个用于 ...

随机推荐

  1. [转]编写Android.mk中的LOCAL_SRC_FILES的终极技巧

    希望看原文的请移步:[原创]编写Android.mk中的LOCAL_SRC_FILES的终极技巧 问题的引入 在使用NDK编译C/C++项目的过程中,免不了要编写Android.mk文件,其中最重要的 ...

  2. eclipse中类和方法添加作者日期说明

    1.类添加作者日期说明 依次点击window—>preferences—>Java—>Code Stype—>Code Templates-Comments-Types 2.方 ...

  3. 交叉编译busybox

    交叉编译器: 3.3.2# wget -c http://www.busybox.net/downloads/busybox-1.7.0.tar.bz2# tar jxvf busybox-1.7.0 ...

  4. jQuery+Ajax获取百度百科历史上的今天

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. oracle 实现插入自增列(类似SqlServer Identity)

    oracle不像sql server 有关键字identity直接可插入数据时自增 ,Oracle是不能用Identity,可以使用Sequence Create Table Tempinfo( id ...

  6. Mac 命令行安装mysql homebrew 安装mysql后,如何配置mysql

    非常好 强力推荐 这个是我最新并且一直推崇的方法:1.安装:sunyichaodeMacBook-Pro:~ sunyichao$ brew install mysql2.开启mysql:mysql. ...

  7. 推荐10款纯css3实现的实用按钮

    在2014年的双11即将来临之季,爱编程小编为大家整理10款纯css3实现的按钮.希望这对坚守在前端的码农们有所帮助.亲,如果你有好的资源也可在本文留言,让从事编码的程序员们抱团.工作更轻松. No1 ...

  8. docker探索-在centos6.5中安装docker(三)

    1.要求 centos6.5中需要64位 centos6.5的linux内核需要3.x(centos的内核是2.6) 2.查看当前系统的位数和版本 [root@jacky jacky]# uname ...

  9. 【WPF】Window窗体禁用最大化/最小化按钮

    需求:弹窗的右上角不显示最大化.最小化按钮. 在< Window >节点添加属性以下属性即可: ResizeMode="NoResize" 或者直接在Propertie ...

  10. C中结构体的存储分配

    C中结构体的存储分配 对于C语言中结构体所占的存储空间的大小,也一直是笔试面试的常客,今天好好看了一下这方面,以前一直以为很清楚了,今天通过各种实际测试举例,发现原来还是没有搞透彻,好在现在是彻底懂了 ...