java resultset 数据_保存ResultSet中的数据(Java Source Code)

保存ResultSet中的数据

马嘉楠        2006.8.26

当我们在编写程序的时候,免不了要与数据库打交道,相信ResultSet大家也并不陌生,从数据库读取的数据将会存入其中。

操作结束关闭数据库连接以及ResultSet,否则保持数据库的连接并直接对ResultSet中的数据进行操作,会使效率低下,同时很可能出现错误。

此时我们就需要在关闭结果集ResultSet之前,保存其中我们需要的数据。

我这里介绍的方法是将ResultSet中的数据存储到一个VO对象当中,ResultSet中每一个记录对应一个VO(VO就是数据库中表的映射),之后再把这些VO存储到ArrayList当中,返回List方便其他方法处理。

希望能给初学者以帮助,同时请高手不吝赐教,有没有更好的处理方法,或者我的代码由不合理的地方,也请您提出宝贵意见!共同学习,共同进步!

代码如下(我把实际代码简化了一下,BlogJavaVO中的一些函数在这里没有调用):

protected ArrayList fetchMultiResults(ResultSet rs) throws SQLException {

ArrayList resultList = new ArrayList();

while (rs.next()) {

BlogJavaVO vo = new BlogJavaVO();

populateData( vo, rs);

resultList.add( vo );

}

return resultList;

}

protected void populateData(BlogJavaVO vo, ResultSet rs) throws SQLException {

vo.setUrl(DAOUtils.trimStr(rs.getString("url")));

vo.setName(DAOUtils.trimStr(rs.getString("name")));

vo.setDate(DAOUtils.getFormatedDate(rs.getDate("date"));

}

public class DAOUtils {

... ...

/**

* 提供删除字符串前后的空格的功能

* @param str

* @return

*/

public static String trimStr(String str) {

if (null == str)

return "";

else

return str.trim();

}

... ...

}

VO是数据库中表的映射

Vo代码如下:

public class BlogJavaVO implements VO {

private String url = "";

private String name = "";

private String date = ""; //数据库表BlogJava中的属性设置为时间

public BlogJavaVO() {}

public BlogJavaVO( String purl, String pname, String pdate ) {

this.url = purl;

this.name = pname;

this.date = pdate;

}

public String getUrl() {

return url;

}

public String getName() {

return name;

}

public String getDate() {

return date;

}

public void setUrl(String purl) {

this.url = purl;

}

public void setName(String pname) {

this.name = pname;

}

public void setDate(String pdate) {

this.date = pdate;

}

public HashMap unloadToHashMap() {

HashMap hashMap = new HashMap();

hashMap.put("URL",this.url);

hashMap.put("NAME",this.name);

hashMap.put("DATE",this.date);

return hashMap;

}

public void loadFromHashMap(HashMap hashMap) {

if (hashMap != null) {

this.url = (String) hashMap.get("URL");

this.name = (String) hashMap.get("NAME");

this.date = (String) hashMap.get("DATE");

}

}

public List getKeyFields() {

ArrayList arrayList = new ArrayList();

arrayList.add("url");

return arrayList;

}

public String getTableName() {

return "BlogJava";

}

}

import java.io.Serializable;

import java.util.*;

/**

* @Classname : VO

* @Description : 公共数据对象接口,对于每个表值对象, 相应的接口函数使用代码生成器进行生产

* @Copyright

* @Author :

* @Create Date :

*

* @Last Modified :

* @Modified by :

* @Version : 1.0

*/

public interface VO extends Serializable {

// 把数据导出到HashMap中, HashMap的关键字为对应的表字段名字

// 使用代码生产器生产

public HashMap unloadToHashMap();

// 从HashMap中读取数据, 使用代码生产器生成

public void loadFromHashMap(HashMap map);

// 获取关键字列表, 使用代码生产器生成

public List getKeyFields();

// 获取对应的表名, 使用代码生产器生成

String getTableName();

}

马嘉楠

jianan.ma@gmail.com

posted on 2006-08-26 18:08 马嘉楠 阅读(3004) 评论(5)  编辑  收藏 所属分类: SoureCode

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值