本文共 2751 字,大约阅读时间需要 9 分钟。
当我们在编写程序的时候,免不了要与数据库打交道,相信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(); }本文转自BlogJavaOo缘来是你oO的博客,原文链接:,如需转载请自行联系原博主。