dbutils

maven依赖

<dependency>
    <groupId>commons-dbutils</groupId>
    <artifactId>commons-dbutils</artifactId>
    <version>1.7</version>
</dependency>

dbutils它是对JDBC的简单封装,极大简化jdbc编码的工作量

DbUtils类

提供了关闭连接,装载JDBC驱动,回滚提交事务等方法的工具类

QueryRunner类

该类简化了SQL查询,配合ResultSetHandler使用,可以完成大部分的数据库操作,重载了许多的查询,更新,批处理方法。大大减少了代码量

ResultSetHandler接口

该接口规范了对ResultSet的操作,要对结果集进行什么操作,传入ResultSetHandler接口的实现类即可。

  • ArrayHandler:把结果集中的第一行数据转成对象数组。

  • ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。

  • BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。

  • BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。

  • ColumnListHandler:将结果集中某一列的数据存放到List中。

  • KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。

  • MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。

  • MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List

  • ScalarHandler 将ResultSet的一个列到一个对象中。

 

使用代码

   //创建 dataSource
    MysqlDataSource mysqlDataSource=new MysqlDataSource();
    mysqlDataSource.setServerName("host");
    mysqlDataSource.setDatabaseName("dbName");
    mysqlDataSource.setUser("user");
    mysqlDataSource.setPassword("password");
    //创建queryRunner
    QueryRunner queryRunner=new QueryRunner(mysqlDataSource);
    //无占位符的查询语句
    String sql1="SELECT * FROM user WHERE id=1";
    //使用map 接收查询结果 MapHandler
    Map<String,Object> map=queryRunner.query(sql1,new MapHandler());
    for(Map.Entry<String,Object> entry:map.entrySet()){
        System.out.println(entry.getKey()+"="+entry.getValue().toString());
    }
​
    //有占位符的查询语句
    String sql2="SELECT * user WHERE age=?";
    //使用List<Map> 接收查询结果 MapListHandler
    List<Map<String,Object>> mapList=queryRunner.query(sql2,new MapListHandler(), "10");
    for(Map<String,Object> map1:mapList){
        for(Map.Entry<String,Object> entry:map1.entrySet()){
            System.out.println(entry.getKey()+"="+entry.getValue().toString());
        }
    }

 




 

 

posted @ 2019-09-20 17:33  huiyii  阅读(184)  评论(0编辑  收藏  举报