首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库操作之DBUtils工具类的使用,简化我们的项目开发,很有用

上一篇文章,说了一下具体的jdbc的用法,明确了jdbc操作数据库增删改查,使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,常常采用apache commons组件一个成员:DBUtils。DBUtils就是JDBC的简化开发工具包。需要项目导入commons-dbutils-1.6.jar才能够正常使用DBUtils工具。

QueryRunner中提供对sql语句操作的API.

ResultSetHandler接口,用于定义select操作后,怎样封装结果集.

DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法

上图为增删改的代码,都是通过update实现的,那么下面将通过query方法实现查询,查询方法并不难,关键是有很多结果处理集,这个需要熟练。

该方法的第三个参数是结果集的处理方式,需要传递给该方法的ResultSetHandler的接口实现类,该方法的返回值为泛型,说明我们传入结果集处理方式时,那么返回值就是什么类型,返回值类型由结果集确定。如果传入结果集时没有明确泛型,那么返回的类型按照object处理。

下面演示ArrayHandler,这个处理式处理的结果就是会将查询结果中的第一行存入数组中,并以数组的的形式返回,我们可以通过遍历数组的方法获取到

ArrayListHandler,这个结果集会将查询结果的每一行,(不仅仅是第一行)封装到数组中,并将所有对象数组存入到集合中,所以该方法返回查询结果的集合。

结果集的第三种处理方法,可以把结果的第一行封装成JavaBean对象,这个JavaBean的类必须要有空参的构造方法,不然不能封装成功,注意是第一行不是每一行。

这里解释一下,我们这里用了泛型,如果不用泛型,则返回object对象,用了泛型就可以返回指定的对象了,这个对象构造的时候传入的参数是Sort.class,之所以传入class,是因为内部代码会通过反射的方式构造出来对象,传Sort.class,则会构造出Sort对象。

第五种结果集处理方法columnListHandler,将查询结果指定一个列,将这个列的数据存储到list集合中。

第六种结果集处理方法ScalarHandler,对于查询以后只有一个结果集(一行一列)的时候,用它很合适

结果正确,上面的代码泛型为Object,如果泛型为Object的话,那么和不写泛型一个意思,那泛型可以写Integer吗?

不可以,出现了异常,这个异常的大概意思就是说这个Long不能转成int,说明改结果集处理方式内部是按照long处理的,所以会出问题,那么泛型我们可以用long。

可以看出完全没有问题的,所以以后用这个结果集处理的时候要注意了。

结果集的第七种处理方法,MapHandler,将结果集第一行数据,封装到map集合,数据中列名为键,列值为值,返回类型为Map,必须要写上泛型。

结果集的第七种处理方法,MapHandler,将结果集每一行数据,封装到map集合,然后再将这些map存到list中,所以返回类型List> list

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180209A0NVX400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券