dbutils原理及结果集处理器的介绍--------------------------------

1 DBUtils简介

DBUtils是Apache Commons组件中的一员,开源免费!

DBUtils是对JDBC的简单封装,但是它还是被很多公司使用!

DBUtils的Jar包:dbutils.jar

 

2 DBUtils主要类

  1. DbUtils:都是静态方法,一系列的close()方法;
  2. QueryRunner:
  • update():执行insert、update、delete;
  • query():执行select语句;
  • batch():执行批处理。

 

3 QueryRunner之更新

QueryRunner的update()方法可以用来执行insert、update、delete语句。

  1. 创建QueryRunner

构造器:QueryRunner();

 

  1. update()方法

int update(Connection con, String sql, Object… params)

 

    @Test

    public void fun1() throws SQLException {

       QueryRunner qr = new QueryRunner();

       String sql = "insert into user values(?,?,?)";

       qr.update(JdbcUtils.getConnection(), sql, "u1", "zhangSan", "123");

    }

 

  还有另一种方式来使用QueryRunner

  1. 创建QueryRunner

构造器:QueryRunner(DataSource)

 

  1. update()方法

int update(String sql, Object… params)

 

这种方式在创建QueryRunner时传递了连接池对象,那么在调用update()方法时就不用再传递Connection了。

    @Test

    public void fun2() throws SQLException {

       QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

       String sql = "insert into user values(?,?,?)";

       qr.update(sql, "u1", "zhangSan", "123");

    }

 

4 ResultSetHandler

我们知道在执行select语句之后得到的是ResultSet,然后我们还需要对ResultSet进行转换,得到最终我们想要的数据。你可以希望把ResultSet的数据放到一个List中,也可能想把数据放到一个Map中,或是一个Bean中。

DBUtils提供了一个接口ResultSetHandler,它就是用来ResultSet转换成目标类型的工具。你可以自己去实现这个接口,把ResultSet转换成你想要的类型。

DBUtils提供了很多个ResultSetHandler接口的实现,这些实现已经基本够用了,我们通常不用自己去实现ResultSet接口了。

  1. MapHandler:单行处理器!把结果集转换成Map<String,Object>,其中列名为键!
  2. MapListHandler:多行处理器!把结果集转换成List<Map<String,Object>>;
  3. BeanHandler:单行处理器!把结果集转换成Bean,该处理器需要Class参数,即Bean的类型;
  4. BeanListHandler:多行处理器!把结果集转换成List<Bean>;
  5. ColumnListHandler:多行单列处理器!把结果集转换成List<Object>,使用ColumnListHandler时需要指定某一列的名称或编号,例如:new ColumListHandler(“name”)表示把name列的数据放到List中。
  6. ScalarHandler:单行单列处理器!把结果集转换成Object。一般用于聚集查询,例如select count(*) from tab_student。

 

猜你喜欢

转载自blog.csdn.net/weixin_42472048/article/details/82930987