Apache Commons DbUtils工具包的使用---by wjf(2020.6.9)

近期在查阅相关资料的时候,发现了一个很好用的工具包,赶紧写篇博客记录一下,方便以后使用。这个工具包就是Apache的DbUtils工具包。这个工具十分的强大,其实它就是JDBC轻量级封装的工具包,最核心的特性是在JDBC的基础上做了一层封装,主要是对结果集的封装,可以直接将查询出来的结果集封装成JavaBean,为我们的查询提供了非常大的便利!

但是有一点要注意的是必须满足JavaBean的规范,其次Bean的getter与setter方法的名字与结果集的列名必须一一对应,不要求JavaBean的私有成员与表结果集列名一一对应。

DBUtils可以将结果集封装为各种类型
主要有:Bean/List,Map/List/Map,数组/List<数组>,列/List<列>,这些类型。

常用的API介绍:
DbUtils:一个为简化JDBC操作的小类库
AbstractQueryRunner:是抽象类,QueryRunner和AsyncQueryRunner类的基类。
AsyncQueryRunner:可插拔的方式执行SQL查询,处理结果集。是线程安全的类。
BaseResultSetHandler:把结果集转换成其它对象的扩展。
BeanProcessor:BeanProcessor匹
GenerousBeanProcessor:提供了从数据库列名到JavaBean属性之间的智能匹配。
ProxyFactory:产生JDBC接口的代理实现。
QueryLoader:属性文件加载器,主要用于加载属性文件中的SQL到内存中。
QueryRunner:使用可插拔的策略执行SQL查询并处理结果集。
ResultSetHandler:把ResultSet转换为别的对象的工具。
ResultSetIterator:包装结果集为一个迭代器。
RowProcessor:将ResultSet行转换为别的对象的工具。

代码展示:

  public Map<String,Object> getScrollGood()throws SQLException{
        QueryRunner q = new QueryRunner(DBUtil.getDataSource());
        String sql="select g.id,g.name,g.cover,g.price  from recommend r,goods g where type=1 and r.goods_id=g.id";
        return q.query(sql, new MapHandler());
    }

   public void insert(Goods g) throws SQLException {
        QueryRunner q = new QueryRunner(DBUtil.getDataSource());
        String sql = "insert into goods(name,cover,image,price,type_id) values(?,?,?,?,?)";
        q.update(sql,g.getName(),g.getCover(),g.getImage(),g.getPrice(),g.getType().getId());
    }

通过所使用的代码我们可以发现代码被大大的简化了,尤其是针对于查询将会更加的方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值