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

koself 2018-02-08

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

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

Dbutils三个核心功能介绍

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

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

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

演示具体功能操作,增删改查

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

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

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

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

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

多种类型的结果集

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

至此关于jdbc的工具类就讲到这里了,这不是最全的,但却是最实用的一些方法,下一篇我想整理一下连接池的一些东西,如果你写想学习编程那就来关注把。

相关推荐