原文参考:http://blog.csdn.net/earbao/article/details/44901061
http://blog.csdn.net/samjustin1/article/details/52220423
自写Demo示例见csdn下载:http://download.csdn.net/detail/wqc19920906/9730162
通常不封装的写法:
Connection conn = ConnectDb.Connect();
String sql = "select * from user where name=?";
PrepareStatement ps = conn.prepareStatement(sql);
ps.setString(1,"wqc");
ResultSet rs = ps.executeQuery();
while(!rs.next()){
System.out.println("存在数据");
}
String sql = "select * from user where name=?";
PrepareStatement ps = conn.prepareStatement(sql);
ps.setString(1,"wqc");
ResultSet rs = ps.executeQuery();
while(!rs.next()){
System.out.println("存在数据");
}
DbUtils写法:
Connection conn = ConnectDb.Connect();
//创建SQL执行工具
QueryRunner qRunner = new QueryRunner();
//执行SQL
UserBean userBean = qRunner.query(conn, "select * from user where id=? ",1,, new BeanHandler<UserBean>(UserBean.class));
System.out.println("name=" + userBean.getName());
//关闭数据库连接
DbUtils.closeQuietly(conn);查询
//创建SQL执行工具
QueryRunner qRunner = new QueryRunner();
//执行SQL
UserBean userBean = qRunner.query(conn, "select * from user where id=? ",1,, new BeanHandler<UserBean>(UserBean.class));
System.out.println("name=" + userBean.getName());
//关闭数据库连接
DbUtils.closeQuietly(conn);查询
一、apache DBUtils是java编程中的数据库操作实用工具,小巧简单实用。
1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合以及java Bean,便于程序员操作;
2.对于数据表的写操作,也变得很简单(只需写sql语句)
3.可以使用数据源,使用JNDI,
数据库连接池等技术来优化性能--重用已经构建好的数据库连接对象,而不像php,asp那样,费时费力的不断重复的构建和析构这样的对象。
DBUtils包括3个包:
org.apache.commons.dbutils
org.apache.commons.dbutils.handlers
org.apache.commons.dbutils.wrappers
DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
org.apache.commons.dbutils
DbUtils 关闭链接等操作
QueryRunner 进行查询的操作
org.apache.commons.dbutils.handlers
ArrayHandler :将ResultSet中第一行的数据转化成
对象数组
ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是Object[]
BeanHandler :将ResultSet中第一行的数据转化成类对象
BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象
ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是Object对象
KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数据
MapHandler :将ResultSet中第一行的数据存成Map映射
MapListHandler :将ResultSet中所有的数据存成List。List中存放的是Map
ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object
org.apache.commons.dbutils.wrappers
SqlNullCheckedResultSet :对ResultSet进行操作,改版里面的值
StringTrimmedResultSet :去除ResultSet中中字段的左右空格。Trim()
主要方法:
DbUtils类:启动类
ResultSetHandler接口:转换类型接口
MapListHandler类:实现类,把记录转化成List
BeanListHandler类:实现类,把记录转化成List,使记录为JavaBean类型的对象
Qrery Runner类:执行SQL语句的类
Queryrunner.query —————只可以执行select语句。
Queryrunner.update —————只可以接收update,delte,insert语句
BeanHandler ——————返回一个 Bean,结果封装到Bean。只查询第一行。适合根据id查询唯一的一行
BeanListHandler ——————返回List<Bean>所有行,都封装到List,适合于查询多个结果
MapHandler ——————与BeanHandler应,只返回第一行,封装成Map类型 - 也适合于查询一个结果集的 适合于关联查询,且没有匹配的Bean。
MapListHandler ——————与BeanListHandler对应,返回所有,封装成List<Map>类型
ScalarHandler ——————标量- 用于select count(1)|sum|avg|max …一些聚合函数