DButils
- 格式:pdf
- 大小:67.07 KB
- 文档页数:2
DButils
DBUtils
什么是DBUtils
DBUtils是⼀个实⽤⼩巧的⼯具,封装了JDBC.简化了JDBC的操作.
对于数据库的读操作,只需要知道sql语句即可.
DBUtils会将查询的结果集以指定的⽅式封装起来,⽐如List, javaBean等.同时⽀持数据源技术.使⽤时需要引⼊DButils的jar包:
密码:f6l6
DBUtils的API
QueryRunner对象
1.对象描述
该对象⽤来提供执⾏增删改查的⽅法.2.⽅法
query() 查询⽅法
update() 增删改⽅法ResultSetHandler对象(接⼝)
1.对象描述
⽤来对查询的结果集进⾏封装2.该接⼝常⽤实现类
ArrayHandler
适合结果集是⼀⾏数据,该实现类会将这⾏数据封装成⼀个数组对象,元素即为查询出来的字段值.ArrayListHandler
适合结果集是多⾏数据,会将这些数据封装成⼀个List集合,该集合的元素是数组,数组即为每⾏数据ColumnListHandler
适合结果集是多⾏单列,会将这些数据封装到⼀个List集合KeyedHandler
适合取多条数据,会将每条数据封装成⼀个map集合,最后再把这些map集合封装成⼤map中MapHandler
适合结果集是⼀条数据,封装到map集合中MapListHandler
适合取多条数据,会将每条数据封装成⼀个map集合,最后再把这些map集合封装成List中ScalarHandler
适合取单⾏单列数据,⽐如聚合函数BeanHandler
适合取单⾏数据,将数据封装成对象BeanListHandler
适合取多⾏数据,将每⾏数据封装成⼀个对象,再把这些对象封装成⼀个List集合
举个栗⼦BeanListHandler
public class Demo {
public static void main(String[] args) throws SQLException {
//执⾏查询
//创建QueryRunner对象
QueryRunner queryRunner = new QueryRunner();
Connection connection = JDBCUtil.getConnection(); //此⽅法是⾃定义实现的参考连接池那篇随笔
//查询多⾏,并封装成对象,再放进List集合中
List
for(Enployee e:list){
System.out.println(e);
}
}
}
栗⼦BeanHandler:
//执⾏查询
//创建QueryRunner对象
QueryRunner queryRunner = new QueryRunner();
Connection connection = JDBCUtil.getConnection();
//查询⼀⾏,封装成对象
Employee emp = queryRunner.query(connection, "select * from emp where e_id = ?", new BeanHandler
栗⼦KeyedHandler:
//执⾏查询
//创建QueryRunner对象
QueryRunner queryRunner = new QueryRunner();
Connection connection = JDBCUtil.getConnection();
Map
//遍历map集合
Set
for(Map.Entry
Object bigKey = entry.getKey();
Map
System.out.println(bigKey); //关⽻
Set
for(String smallKey : smallSet) {
Object value = smallMap.get(smallKey);
System.out.println(smallKey + ":" + value);
}
}
栗⼦ScalarHandler: //执⾏查询
//创建QueryRunner对象
QueryRunner queryRunner = new QueryRunner();
Connection connection = JDBCUtil.getConnection();
//聚合函数
long num = (long) queryRunner.query(connection, "select count(*) from emp", new ScalarHandler());
System.out.println(num);
栗⼦:
//执⾏查询
//创建QueryRunner对象
QueryRunner queryRunner = new QueryRunner();
Connection connection = JDBCUtil.getConnection();
//增
Employee employee = new Employee();
employee.setE_id(18);
employee.setE_name("吕布");
employee.setE_salary(10000.0);
employee.setE_did(1);
employee.setHiretime(new Date());
employee.setE_job("staff");
Object[] param = {employee.getE_id(), employee.getE_name(), employee.getE_salary(), employee.getE_job(), employee.getE_did(), employee.getHiretime()};
int row = queryRunner.update(connection, "delete from emp where e_name = ?", employee.getE_name());
System.out.println(row);
JDBCUtil.close(connection);