ResultSetHandler 的实现类使用

说明 : 结果集处理类, 将从数据库中获取的数据进行封装处理, 从Dao层返回数据给 Service 层.

ArrayHandler

将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

ArrayListHandler

将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。

BeanHandler

将结果集中第一条记录封装到一个指定的javaBean中。

BeanListHandler

将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中

ColumnListHandler

将结果集中指定的列的字段值,封装到一个List集合中

KeyedHandler

将结果集中每一条记录封装到Map<String,Object>,在将这个map集合做为另一个Map的value,另一个Map集合的key是指定的字段的值。

MapHandler

将结果集中第一条记录封装到了Map<String,Object>集合中,key就是字段名称,value就是字段值

 

MapListHandler

将结果集中每一条记录封装到了Map<String,Object>集合中,key就是字段名称,value就是字段值,在将这些Map封装到List集合中。

ScalarHandler

它是用于单数据。例如select count(*) from 表操作。

 

 

 

 

 

 

 

 

 

 

 

ResultSetHandler 在DBUtils 框架中提供九个默认 实现类,直接使用九个默认实现类,可以完成常规操作,而不需要自定义结果集封装

1) ArrayHandler 和 ArrayListHandler  将数据表的每行记录保存Object[] 中

2) BeanHandler 和 BeanListHandler 将数据表每行记录 保存JavaBean对象中

* 封装javabean属性时,必须保证数据表列名与 javabean属性名一致,否则无法封装

3) MapHandler和 MapListHandler 将结果每行记录保存到一个Map集合,key是列名,value是值  

4) ColumnListHandler 查询结果集中指定一列数据

5) KeyedHandler(name) 结果集每行数据封装map,再将map存入另一个map 作为value,指定一列作为key

6) ScalarHandler 进行单值查询 select count(*) from account;

BeanHandler

@Test

public void test_BeanHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

// 2. 执行 query 方法

String sql = "select * from user where id=?;";

User user = queryRunner.query(sql, new BeanHandler<User>(User.class), 3);

System.out.println(user);

}

BeanListHandler

@Test

public void test_BeanListHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

// 2. 执行 query 方法

String sql = "select * from user;";

List<User> list = queryRunner.query(sql, new BeanListHandler<User>(User.class));

for (User user : list) {

System.out.println(user);

}

}

ScalarHandler

@Test

public void test_scalarHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

// 2. 执行 query 方法

String sql = "select count(*) from user;";

Long result = queryRunner.query(sql, new ScalarHandler<Long>());

System.out.println(result);

}

​​​​​​​MapHandler

@Test

public void test_MapHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

String sql = "select * from user;";

Map<String, Object> map = queryRunner.query(sql, new MapHandler());

System.out.println(map);

}

​​​​​​​MapListHandler

@Test

public void test_MapListHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

String sql = "select * from user;";

List<Map<String, Object>> list = queryRunner.query(sql, new MapListHandler());

for (Map<String, Object> map : list) {

System.out.println(map);

}

}

​​​​​​​ArrayHandler

@Test

public void test_ArrayHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

// 2. 执行 query 操作

String sql = "select * from user;";

Object[] arr = queryRunner.query(sql, new ArrayHandler());

System.out.println(Arrays.toString(arr));

}

​​​​​​​ArrayListHandler

@Test

public void test_ArrayListHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

// 2. 执行 query 操作

String sql = "select * from user;";

List<Object[]> list = queryRunner.query(sql, new ArrayListHandler());

for (Object[] arr : list) {

System.out.println(Arrays.toString(arr));

}

}

​​​​​​​ColumnListHandler

@Test

public void test_ColumnListHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

// 2. 执行 query 操作

String sql = "select * from user;";

List<String> list = queryRunner.query(sql, new ColumnListHandler<String>("username"));

System.out.println(list);

}

KeyedHandler

@Test

public void test_KeyedHandler() throws SQLException {

// 1. 创建QueryRunner对象, 同时将 `数据库` 对象传入

QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());

// 2. 执行 query 操作

String sql = "select * from user;";

Map<User, Map<String, Object>> map = queryRunner.query(sql, new KeyedHandler<User>("username"));

for (Entry<User, Map<String, Object>> entry : map.entrySet()) {

System.out.println(entry);

}

}

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值