(8)JDBC--DBUtils(对于操作的封装)

是一个apache推出的对JDBC的简单封装的工具类库,提供了通用的JDBC方法 需要引入common-dbutils-1.jar

1.QueryRunner类

有方法close()可关闭c,s,r
closeQuietly()关闭的同时会隐藏一些SQLException
commitAndClose(Connection c)提交事务,关闭连接
commitAndCloseQuietly(Connection c)提交事务,关闭连接,并且不抛出sql异常
rollback(Connection c)
rollbackAndClose(Connection c)
rollbackAndCloseQuietly(Connection c)
loadDriver(驱动名)可以直接装载并注册JDBC驱动
T query(Connection c,String sql,ResultHandler rh,Object… params)ResultHandler 查询的时候如果查一条则返回bean,查询多个返回list,查询一个值返回Object,而这个可以根据不同的结果封装成不同的结果
int update(Connection c,String sql,Object… params) 与自己写的类似。

2.ResultHandler接口

传入不同的接口实现类来处理不同的查询结果
比如说实现类BeanHandler 会把结果集的第一条封装为一个Bean类
BeanListHandler 把结果集封装为一个List[Bean]
ScalarHandler 就返回一个值(结果集的第一行第一列)

用的时候连接数据库还是用连接池吧,获得c
直接QueryRunner qr=new QueryRunner();
qr.update(c,“add xxxx”,1,“sss”)
关闭时用连接池就可以。
qr.query(c,“select xxx”,new BeanHandler(User.class),1) 记得这里的User需要有一个无参的构造方法,因为它是通过反射来映射的,再通过属性名映射
查询多个的时候就直接传入new BeanLIstHandler(User.class)
单个值的话就不需要参数,传入new ScalerHandler()

这里虽然只用了一个方法,但是自己真正实现的时候还是要些多个,因为只有多个才能知道现在查的是什么,才知道往里面传ResultHandler的哪个实现类
而这个类实现的时候要知道现在bean类的xx.class,所以方法接收的时候要接收Class c,然后把c传进去。 new BeanHandler©
因为这里要接收一个泛型值,所以返回也是T ,还要在public后标明这是一个泛型方法public T querySingle(){ } 所以可以直接把整个类设置为泛型类,这样就不用标明每个方法了,也就是在类名后面加

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值