最近做的项目需要与多个数据库的多张表进行增删改查,在这里我使用了DButil来帮忙实现增删改查的操作。
但是在写代码的过程中我希望自己取得的结果集返回给客户端时是以json字符串的形式,但是显然gson是不能直接转list的。那么我的想法是先把list转为Map再进行json格式转换。但是在看DBUtil的源码时发现它在取得数据的时候会使用封装好的Handler()来转换数据格式,那么直接用封装好的Handlerb()方法不是更省事吗?
我们查询数据时使用queryRunner.query(conn,
sql,
new Handler(),
(Object[])params);方法,只要替换其中的Handler就能获取不同格式的数据!
就这样在查看了很多文章和文档之后我发现了如下几个可直接使用的Handler(可处理多行或单行数据):
new MapHandler():将结果集封装到Map中返回
new BeanHandler(T.class):将结果封装为T对象或T对象数组返回
new ArrayHandler():将结果封装为数组返回
newColumnListHandler("需要返回的那一列的列名"):使用ColumnListHandler处理单行记录,返回其中指定的一列!(
这个只能处理单行数据)
new ScalarHandler("
需要返回的那一列的列名"):使用ScalarHandler处理单行记录,只返回结果集第一行中的指定字段,如未指定字段,则返回第一个字段!
(
这个只能处理单行数据
)
这样我们在写项目的时候就会很省事了!就此Mark!