java之dbutils笔记

来源:互联网 发布:西安东华软件远古 编辑:程序博客网 时间:2024/05/29 18:53

注意导包:commons-dbutils-1.4.jar,c3p0-0.9.1.2.jar

dbutils(是apache组织的一个工具类,jdbc的框架):对数据源的进一步封装,我们不用去关闭资源,管理有dbutils实现

配合c3p0使用,相关知识可以去看之前我写的 

java之c3p0笔记

ResultSetHandler:封装结果集 接口 
(了解)ArrayHandler, 将查询结果的第一条记录封装成数组,返回
 (了解)ArrayListHandler, 将查询结果的每一条记录封装成数组,将每一个数组放入list中返回
 ★★BeanHandler, 将查询结果的第一条记录封装成指定的bean对象,返回
 ★★BeanListHandler, 将查询结果的每一条记录封装成指定的bean对象,将每一个bean对象放入list中 返回.
(了解)ColumnListHandler, 将查询结果的指定一列放入list中返回 
 (了解)MapHandler, 将查询结果的第一条记录封装成map,字段名作为key,值为value 返回
★MapListHandler, 将查询结果的每一条记录封装map集合,将每一个map集合放入list中返回
★ScalarHandler,针对于聚合函数 例如:count(*) 返回的是一个Long值

DbUtils类:释放资源,控制事务类
closeQuietly(conn):内部处理了异常
commitAndClose(Connection conn):提交事务并释放连接

案例代码:

package dbutils;public class User {public String uid;public String username;public String getUid() {return uid;}public void setUid(String uid) {this.uid = uid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Overridepublic String toString() {return "User [uid=" + uid + ", username=" + username + "]";}}

package dbutils;import java.sql.SQLException;import java.util.List;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanHandler;import org.apache.commons.dbutils.handlers.BeanListHandler;import org.junit.Test;import com.mchange.v2.c3p0.ComboPooledDataSource;public class DbutilsDemo {@Testpublic void test1(){QueryRunner db = new QueryRunner(new ComboPooledDataSource());//获取执行语句的对象String sql = "select * from t_user";try {List<User> rs = db.query(sql, new BeanListHandler<>(User.class));for(User u : rs){System.out.println(u.toString());}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}@Testpublic void test2(){QueryRunner db = new QueryRunner(new ComboPooledDataSource());String sql = "select * from t_user";try {User rs = db.query(sql, new BeanHandler<>(User.class));System.out.println(rs.toString());} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}




原创粉丝点击