DBUtils轻量级框架的9种返回类型实例(接上文)

好记性不如赖笔头……
目录:
1、BeanListHandler:以List集合的形式返回,使用较多;是泛型,这里是指实体bean,也就是实体类
2、BeanHandler:只返回一条数据,并将数据封装到指定的实体中,与上面的BeanListHandler是对应的
3、ArrayHandler:只返回一条数据,将数据以Object[]数组的形式返回
4、ArrayListHandler:返回多条数据,将数据以List

/**
     * BeanListHandler:以List<T>集合的形式返回,使用较多
     * @创建时间:2017年7月18日11:28:40
     */
    @Test
    public void testSelect(){
        //创建对象,并将数据源导入
        QueryRunner qRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            //执行SQL语句,返回List集合数据
            List<Account> accounts = qRunner.query("select * from account",new BeanListHandler<Account>(Account.class));
//          输出数据
            for(int i = 0; i < accounts.size();i++){
                System.out.println(accounts.get(i));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

Account [id=1, name=admin, memery=1000.0]
Account [id=2, name=Test, memery=3000.0]
Account [id=4, name=Test1, memery=144.2535]
Account [id=5, name=Test2, memery=288.507]
Account [id=6, name=Test3, memery=432.7605]
Account [id=7, name=Test4, memery=577.014]
Account [id=8, name=Test5, memery=721.2675]
Account [id=9, name=Test6, memery=865.521]
Account [id=10, name=Test7, memery=1009.7745]
Account [id=11, name=Test8, memery=1154.028]
Account [id=12, name=Test9, memery=1298.2815]
Account [id=13, name=Test10, memery=1442.535]
Account [id=14, name=Test11, memery=1586.7885]
Account [id=15, name=Test12, memery=1731.042]
Account [id=16, name=Test13, memery=1875.2955]
Account [id=17, name=Test14, memery=2019.549]
Account [id=18, name=Test15, memery=2163.8025000000002]
Account [id=19, name=Test16, memery=2308.056]
Account [id=20, name=Test17, memery=2452.3095]
Account [id=21, name=Test18, memery=2596.563]
Account [id=22, name=Test19, memery=2740.8165]
Account [id=23, name=Test20, memery=2885.07]

2、BeanHandler:只返回一条数据,并将数据封装到指定的实体中,与上面的BeanListHandler是对应的

/**
     * BeanHandler:只返回一条数据,并将数据封装到指定的实体中
     * @创建时间:2017年7月18日11:28:40
     */
     @Test
    public void testSelect1(){
        QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            //只返回一条数据,并将数据封装到指定的实体中
            Account query = queryRunner.query("select * from account", new BeanHandler<Account>(Account.class));
            System.out.println(query);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

Account [id=1, name=admin, memery=1000.0]

3、ArrayHandler:只返回一条数据,将数据以Object[]数组的形式返回

/**
     * ArrayHandler:只返回一条数据,将数据以Object[]数组的形式返回
     * @创建时间:2017年7月18日11:27:37
     */
    @Test
    public void testSelect2(){
        QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            //new ArrayHandler() 返回数组
            Object[] query = queryRunner.query("select * from account",new ArrayHandler());
            for(Object object:query){
                System.out.print(object+"   ");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

1   admin   1000.0  

4、ArrayListHandler:返回多条数据,将数据以List

/**
     * ArrayListHandler:返回多条数据,将数据以List<Object[]>集合的形式返回,与BeanListHandler有点类似
     * @创建时间:2017年7月18日11:34:52
     */
    @Test
    public void testSelect3(){
        QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            //返回多条数据,将数据以List<Object[]>集合的形式返回,与BeanListHandler有点类似
            List<Object[]> query = queryRunner.query("select * from account", new ArrayListHandler());
            for (Object[] objects : query) {
                for (Object object : objects) {
                    System.out.print(object+"       ");
                }
                System.out.println();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

1       admin       1000.0      
2       Test        3000.0      
4       Test1       144.2535        
5       Test2       288.507     
6       Test3       432.7605        
7       Test4       577.014     
8       Test5       721.2675        
9       Test6       865.521     
10      Test7       1009.7745       
11      Test8       1154.028        
12      Test9       1298.2815       
13      Test10      1442.535        
14      Test11      1586.7885       
15      Test12      1731.042        
16      Test13      1875.2955       
17      Test14      2019.549        
18      Test15      2163.8025000000002      
19      Test16      2308.056        
20      Test17      2452.3095       
21      Test18      2596.563        
22      Test19      2740.8165       
23      Test20      2885.07 

5、MapHandler:返回一条数据,将数据以Map

/**
     * MapHandler:返回一条数据,将数据Map<String,Object>集合的形式返回,
     * @创建时间:2017年7月18日11:38:00
     */
    @Test
    public void testSelect4(){
        QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            Map<String, Object> query = queryRunner.query("select * from account", new MapHandler());
            for (Map.Entry<String, Object> map : query.entrySet()) {
                System.out.println(map.getKey()+"----》"+map.getValue());
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

memery----》1000.0
name----》admin
id----》1

6、KeyedHandler:返回多条数据,将数据以Map

    /**
     * KeyedHandler:返回多条数据,将数据以Map<Object,Map<String,Object>>集合的形式返回,注意:它是无序的
     * @创建时间:2017年7月18日12:17:36
     */
    @Test
    public void testSelect5(){
        QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            //返回多条数据,将数据以Map<Object,Map<String,Object>>集合的形式返回,注意,它是无序的
            Map<Object, Map<String, Object>> query = queryRunner.query("select * from account", new KeyedHandler(1));
            //遍历输出在控制台
            for (Map.Entry<Object, Map<String, Object>> map : query.entrySet()) {
                for (Map.Entry<String, Object> map1 : map.getValue().entrySet()) {
                    System.out.print(map1.getKey()+"    "+map1.getValue()+"    ");
                }
                System.out.println();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

memery  1000.0    name  admin    id 1    
memery  3000.0    name  Test    id  2    
memery  144.2535    name    Test1    id 4    
memery  288.507    name Test2    id 5    
memery  432.7605    name    Test3    id 6    
memery  577.014    name Test4    id 7    
memery  721.2675    name    Test5    id 8    
memery  865.521    name Test6    id 9    
memery  1009.7745    name   Test7    id 10    
memery  1154.028    name    Test8    id 11    
memery  1298.2815    name   Test9    id 12    
memery  1442.535    name    Test10    id    13    
memery  1586.7885    name   Test11    id    14    
memery  1731.042    name    Test12    id    15    
memery  1875.2955    name   Test13    id    16    
memery  2019.549    name    Test14    id    17    
memery  2163.8025000000002    name  Test15    id    18    
memery  2308.056    name    Test16    id    19    
memery  2452.3095    name   Test17    id    20    
memery  2596.563    name    Test18    id    21    
memery  2740.8165    name   Test19    id    22    
memery  2885.07    name Test20    id    23    

7、MapListHandler:返回多条数据,将数据以List

/**
     * MapListHandler:返回多条数据,将数据以List<Map<String,Object>>集合的形式返回
     * @创建时间:2017年7月18日12:22:42
     */
    @Test
    public void testSelect6(){
        QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            //返回多条数据,将数据以List<Map<String,Object>>集合的形式返回
            List<Map<String, Object>> query = queryRunner.query("select * from account", new MapListHandler());

            //遍历输出在控制台
            for (Map<String, Object> map : query) {
                for (Map.Entry<String, Object> map1 : map.entrySet()) {
                    System.out.print(map1.getKey()+"   "+map1.getValue()+"   ");
                }
                System.out.println();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

memery   1000.0   name   admin   id   1   
memery   3000.0   name   Test   id   2   
memery   144.2535   name   Test1   id   4   
memery   288.507   name   Test2   id   5   
memery   432.7605   name   Test3   id   6   
memery   577.014   name   Test4   id   7   
memery   721.2675   name   Test5   id   8   
memery   865.521   name   Test6   id   9   
memery   1009.7745   name   Test7   id   10   
memery   1154.028   name   Test8   id   11   
memery   1298.2815   name   Test9   id   12   
memery   1442.535   name   Test10   id   13   
memery   1586.7885   name   Test11   id   14   
memery   1731.042   name   Test12   id   15   
memery   1875.2955   name   Test13   id   16   
memery   2019.549   name   Test14   id   17   
memery   2163.8025000000002   name   Test15   id   18   
memery   2308.056   name   Test16   id   19   
memery   2452.3095   name   Test17   id   20   
memery   2596.563   name   Test18   id   21   
memery   2740.8165   name   Test19   id   22   
memery   2885.07   name   Test20   id   23 

8、ColumnListHandler:返回一列数据,将数据以List集合的形式返回,可以指定列名,或列的索引,从1开始

/**
     * ColumnListHandler:返回一列数据,将数据以List<Object>集合的形式返回,可以指定列名,或列的索引,从1开始
     * @创建时间:2017年7月18日12:26:59
     */
    @Test
    public void testSelect7(){
        QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            //返回一列数据,将数据以List<Object>集合的形式返回,可以指定列名,或列的索引,从1开始
            List<Object> query = queryRunner.query("select id,name,memery from account", new ColumnListHandler("memery"));
            for (Object object : query) {
                System.out.println(object);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

1000.0
3000.0
144.2535
288.507
432.7605
577.014
721.2675
865.521
1009.7745
1154.028
1298.2815
1442.535
1586.7885
1731.042
1875.2955
2019.549
2163.8025000000002
2308.056
2452.3095
2596.563
2740.8165
2885.07

9、ScalarHandler:返回一个单元格的数据(也可以认为是返回一个结果,常用于返回总数[select count(8) from account 类型的数据])

/**
     * ScalarHandler:返回一个单元格的数据(也可以认为是返回一个结果,常用于返回总数[select count(8) from account])
     * @创建时间:2017年7月18日12:31:07
     */
    @Test
    public void testSelect8(){
        QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
        try {
            //返回一个单元格的数据(也可以认为是返回一个结果,常用于返回总数[select count(8) from account])
            Object query = queryRunner.query("select * from account", new ScalarHandler(2));
            //输出
            System.out.println(query);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

执行结果为:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值