java基础-DBUtils

Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能

直接使用原生的JDBC接口进行开发,在做查询操作时,返回结果是ResultSet集合;如果需要返回实体类对象时,需要自己写处理方案,将ResultSet转为实体类对象;使用DBUtiles可以直接使用QueryRunner,通过简单的参数配置,快速得到想要的结果。

jar包:commons-dbutils-1.4.jar

1、增删改

不用再关注资源的释放

@Test public void DBUTilsTest() throws SQLException {
	//使用C3P0数据库连接池
    ComboPooledDataSource dataSourve = new ComboPooledDataSource();
    // DBUiles只用于 CRUD操作,连接数据库需要使用其他方式
    QueryRunner queryRunner = new QueryRunner(dataSourve);
    // 新增
    queryRunner.update("insert into stu value(null,?,?)", "xiaoming", 1234);
    // 修改
    queryRunner.update("update stu set name = ? where id = ?", "tom", 13);
    // 删除
    queryRunner.update("delete from stu where id = ?", 15);
}

2、查询

  1. 直接new接口的匿名实现类
Stu stu = queryRunner.query("select * from stu where id = ?", 14, new ResultSetHandler < Stu > () {

    @Override public Stu handle(ResultSet rs) throws SQLException {
        Stu stu = new Stu();
        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            stu.setId(id);
            stu.setName(name);
        }
        return stu;
    }
});
System.out.println(stu);
  1. 直接使用框架已经写好的实现类。

查询单个对象

//查询单个对象
Stu stu = queryRunner.query("select * from stu where id = 16", new BeanHandler < Stu > (Stu.class));
System.out.println(stu);

查询多个对象

List < Stu > list = queryRunner.query("select * from stu ", new BeanListHandler < Stu > (Stu.class));

for (Stu stu: list) {
    System.out.println(stu);
}

3、ResultSetHandler 常用的实现类


以下两个是使用频率最高的

  • BeanHandler, 查询到的单个数据封装成一个对象
  • BeanListHandler, 查询到的多个数据封装 成一个List<对象>

  • ArrayHandler, 查询到的单个数据封装成一个数组
  • ArrayListHandler, 查询到的多个数据封装成一个集合 ,集合里面的元素是数组。

  • MapHandler, 查询到的单个数据封装成一个map
  • MapListHandler,查询到的多个数据封装成一个集合 ,集合里面的元素是map。

  • ColumnListHandler:查询一个列
  • KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里
  • ScalarHandler:查询数量count

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值