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 list = queryRunner.query(connection, "select * from emp", new BeanListHandler(Employee.class));

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(Employee.class), 1); //此处的1是where语句等号后⾯的?,做参数

栗⼦KeyedHandler:

//执⾏查询

//创建QueryRunner对象

QueryRunner queryRunner = new QueryRunner();

Connection connection = JDBCUtil.getConnection();

Map> map = queryRunner.query(connection, "select * from emp", new KeyedHandler(2));

//遍历map集合

Set>> set = map.entrySet();

for(Map.Entry> entry : set){

Object bigKey = entry.getKey();

Map smallMap = entry.getValue();

System.out.println(bigKey); //关⽻

Set smallSet = smallMap.keySet();

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);