IO - DBUtils

1.JDBC的问题:

1、操作过程复杂,代码操作一个模式,大量的重复。

2、结果集难以处理,需要将拿到的ResultSet一个一个转成JavaBean,后来形成List,太麻烦了。

3、到处都强制检查SQLException,影响代码的美观和可读性。

2.dbutils API

------------------------------------
包org.apache.commons.dbutils 
        DbUtils是一个为简化JDBC操作的小类库。

接口摘要
ResultSetHandler 将ResultSet转换为别的对象的工具。
RowProcessor 将ResultSet行转换为别的对象的工具。

类摘要
BasicRowProcessor RowProcessor接口的基本实现类。 
BeanProcessor BeanProcessor匹配列明到Bean属性名,并转换结果集列到Bean对象的属性中。
DbUtils 一个JDBC辅助工具集合。 
ProxyFactory 产生JDBC接口的代理实现。 
QueryLoader 属性文件加载器,主要用于加载属性文件中的 SQL 到内存中。 
QueryRunner 使用可插拔的策略执行SQL查询并处理结果集。
ResultSetIterator 包装结果集为一个迭代器。 
  
------------------------------------
包org.apache.commons.dbutils.handlers 
        ResultSetHandler接口的实现类

类摘要
AbstractListHandler 将ResultSet转为List的抽象类
ArrayHandler 将ResultSet转为一个Object[]的ResultSetHandler实现类
ArrayListHandler 将ResultSet转换为List<Object[]>的ResultSetHandler实现类
BeanHandler 将ResultSet行转换为一个JavaBean的ResultSetHandler实现类
BeanListHandler 将ResultSet转换为List<JavaBean>的ResultSetHandler实现类
ColumnListHandler 将ResultSet的一个列转换为List<Object>的ResultSetHandler实现类
KeyedHandler 将ResultSet转换为Map<Map>的ResultSetHandler实现类
MapHandler 将ResultSet的首行转换为一个Map的ResultSetHandler实现类
MapListHandler 将ResultSet转换为List<Map>的ResultSetHandler实现类
ScalarHandler 将ResultSet的一个列到一个对象。

------------------------------------
包org.apache.commons.dbutils.wrappers 
        添加java.sql类中功能包装类。

类摘要
SqlNullCheckedResultSet 在每个getXXX方法上检查SQL NULL值的ResultSet包装类。
StringTrimmedResultSet 取出结果集中字符串左右空格的ResultSet包装类。

3.DEMO

   public static void test_insert() throws SQLException {
                System.out.println("-------------test_insert()-------------");
                //创建连接 ,ConnTools为自己定义的connection工具
                Connection conn = ConnTools.makeConnection();
                //创建SQL执行工具
                QueryRunner qRunner = new QueryRunner();
                //执行SQL插入
                int n = qRunner.update(conn, "insert into user(name,pswd) values(‘iii‘,‘iii‘)");
                System.out.println("成功插入" + n + "条数据!");
                //关闭数据库连接
                DbUtils.closeQuietly(conn);
        } 

        public static void test_find() throws SQLException {
                System.out.println("-------------test_find()-------------");
                //创建连接
                Connection conn = ConnTools.makeConnection();
                //创建SQL执行工具
                QueryRunner qRunner = new QueryRunner();
                //执行SQL查询,并获取结果
                List<User> list = (List<User>) qRunner.query(conn, "select id,name,pswd from user", new BeanListHandler(User.class));
                //输出查询结果
                for (User user : list) {
                        System.out.println(user);
                }
                //关闭数据库连接
                DbUtils.closeQuietly(conn);
        }

  

时间: 2024-11-06 16:10:12

IO - DBUtils的相关文章

javaweb学习总结(四十一)——Apache的DBUtils框架学习

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

DButils工具类可以用来获取数据库连接向数据库插入更新删除对象2

package com.ctl.util; import java.awt.Color; import java.awt.Font; import java.awt.Insets; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.*; import java.lang.reflect.*; import java.sql.*; import java.text.SimpleD

使用DbUtils对JDBC封装实现面向实体查询

直接上代码 package org.smart4j.chapter2.helper; import org.apache.commons.dbcp2.BasicDataSource; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHand

使用dbutils进行批处理

使用batch,但是只能执行相同的SQL语句,参数可以不同. 有两个batch of SQL INSERT, UPDATE, or DELETE queries. * * @param conn The Connection to use to run the query. The caller is * responsible for closing this Connection. * @param sql The SQL to execute. * @param params An arr

DButils工具类能够用来获取数据库连接向数据库插入更新删除对象2

package com.ctl.util; import java.awt.Color; import java.awt.Font; import java.awt.Insets; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.*; import java.lang.reflect.*; import java.sql.*; import java.text.SimpleD

JSP分页(MySql+c3p0+dbutils)

为什么要对数据进行分页?当数据较多时,页面就会变的很庞大,不仅会影响到用户的使用,而且还有加重服务器的负担.下面简单的实现了数据的分页. 第一步:导入相应的jar包 需要导入c3p0,dbutils,mysql驱动等jar包. 第二步:创建数据库和表, 配置c3p0, 创建工具类,User类 创建数据库,并准备测试数据(可以自行生成) create database contacts; use contacts; create table users( id varchar(32), usern

xutils中dbutils的使用

近几天公司交给我一个任务,就是讲公司一个app中的某个功能模块的数据存储方式由sharePreference转为sqlite存储.我已开始就是通过最基础的方式来做的,即这样: package com.mesada.financing.dbutils; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase

第14天dbutils与案例

第14天dbutils与案例 第14天dbutils与案例????1 1.????1.dbutils介绍????2 2.????2.dbutils快速入门????2 3.????3.dbutils API详解-DbUtils类????2 4.????4.dbutils API详解-QueryRunner类????2 5.????5.dbutils API详解-ResultSetHandler????3 6.????6.ResultSetHandler实现类介绍????3 7.????7.案例--

apache DBUtils学习

转载至:http://www.cnblogs.com/xdp-gacl/p/4007225.html 一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. commons-dbutilsAPI介绍: org.apache.commons.d