封装 java Resultset (一)

首先说明一下封装Resultset的动机。

java数据库应用比较流行的是用hibernate操作数据库,对于有一群民工手下的IT高级民工来说,

用hibernate确实是一种比较轻松的解决方式。

但在敏捷开发模式下,比如一两个人接个私活什么的,编写hibernate映射文件就变成

无比头痛的一件事。虽然工具可以帮助从数据库中反向生成,但数据库表结构的修改仍然

非常麻烦。

对于熟悉sql和存储过程的开发者来说,直接操作java数据集是比较轻快的解决方式。

但是直接操作数据集,对Connection, Statement, Resultset等对象必须小心翼翼

的关闭,否则服务器一不小心就吐白沫了。与其提心吊胆的关注释放数据库资源对象,不如

把resultset的一系列操作包装起来,省却开发麻烦。

我需要这样的数据库访问类。

查询类 QD:

返回一个查询 : new QD(String sql);

获得一个字段  new QD(String sql).getString(String fieldName);

new QD(String sql).getInt(int fieldIndex);

...

同时,因为很多情况下,执行一次查询通常只需要取一个字段的值,

每取得一次值后就在QD的类实现中自动关闭查询打开的数据库资源对象,

这样能相当的简化业务实现部分的代码。

如果需要取多个字段的值,那么就用下面的代码

QD qd = new QD(String sql).setContinousGet();

qd.getInt(...);

qd.getDouble(...);

....

qd.close();

遍历QD数据集的方法则简单设计如下QD qd = new QD(String sql).setContinousGet();

while(qd.next()) {

....

}

输出数据集的json字符串[{key1:value1,key2:v2,...}...{..}];

new QD(sql).asJsonObjs();

输出数据集的json数组字符串[[values1,value2,...],...[...]]

new QD(sql).asJsonArray();

另外,还可以考虑实现类似于jbuilder QueryDataSet的lookup字段

下篇再写QD的实现

相关推荐