DBUtils简介
1、DBUtils是Apache Commons组件中的一员,开源免费!
2、DBUtils是对JDBC的简单封装,但是它还是被很多公司使用!
3、DBUtils的Jar包:dbutils.jar
一、对javabean的基本操作
// a. 基本操作
Admin admin = new Admin();
// admin.setUserName("Jack");
// admin.setPwd("999");
// b. BeanUtils组件实现对象属性的拷贝
BeanUtils.copyProperty(admin, "userName", "jack");
BeanUtils.setProperty(admin, "age", 18);
// 总结1: 对于基本数据类型,会自动进行类型转换!
// c. 对象的拷贝
Admin newAdmin = new Admin();
BeanUtils.copyProperties(newAdmin, admin);
// d. map数据,拷贝到对象中
Admin adminMap = new Admin();
Map<String,Object> map = new HashMap<String,Object>();
map.put("userName", "Jerry");
map.put("age", 29);
// 注意:map中的key要与javabean的属性名称一致
BeanUtils.populate(adminMap, map);
// 测试
System.out.println(adminMap.getUserName());
System.out.println(adminMap.getAge());
* entity
public class Admin
private int id;
private String userName;
private String pwd;
private int age;
private Date birth;
二、增、删、改
1. 更新、添加、删除
String sql = "delete from admin where id=?";
// 连接对象
conn = JdbcUtil.getConnection();
// 创建DbUtils核心工具类对象
QueryRunner qr = new QueryRunner();
qr.update(conn, sql, 26);
// 关闭
DbUtils.close(conn);
2. 批处理
String sql = "insert into admin (userName, pwd) values(?,?)";
conn = JdbcUtil.getConnection();
QueryRunner qr = new QueryRunner();
// 批量删除
qr.batch(conn, sql, new Object[][]{ {"jack1","888"},{"jack2","999"} });
// 关闭
conn.close();
三、查
一、查询, 自定义结果集封装数据
String sql = "select * from admin where id=?";
// 获取连接
conn = JdbcUtil.getConnection();
// 创建DbUtils核心工具类对象
QueryRunner qr = new QueryRunner();
// 查询
Admin admin = qr.query(conn, sql, new ResultSetHandler<Admin>() {
// 如何封装一个Admin对象
public Admin handle(ResultSet rs) throws SQLException {
if (rs.next()) {
Admin admin = new Admin();
admin.setId(rs.getInt("id"));
admin.setUserName(rs.getString("userName"));
admin.setPwd(rs.getString("pwd"));
return admin;
}
return null;
}
}, 29);
// 测试
System.out.println(admin);
// 关闭
conn.close();
二、查询, 使用组件提供的结果集对象封装数据
BeanHandler: 查询返回单个对象
String sql = "select * from admin where id=?";
// 获取连接
conn = JdbcUtil.getConnection();
// 创建DbUtils核心工具类对象
QueryRunner qr = new QueryRunner();
// 查询返回单个对象
Admin admin = qr.query(conn, sql, new BeanHandler<Admin>(Admin.class), 29);
System.out.println(admin);
conn.close();
BeanListHandler: 查询返回list集合,集合元素是指定的对象
String sql = "select * from admin";
conn = JdbcUtil.getConnection();
QueryRunner qr = new QueryRunner();
// 查询全部数据
List<Admin> list = qr.query(conn, sql, new BeanListHandler<Admin>(Admin.class));
System.out.println(list);
conn.close();
ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用)
MapHandler 查询返回结果的第一条记录封装为map
String sql = "select * from admin";
conn = JdbcUtil.getConnection();
QueryRunner qr = new QueryRunner();
// 查询
//Object[] obj = qr.query(conn, sql, new ArrayHandler());
//List<Object[]> list = qr.query(conn, sql, new ArrayListHandler());
//Long num = qr.query(conn, sql, new ScalarHandler<Long>());
Map<String, Object> map = qr.query(conn,sql, new MapHandler());
conn.close();