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

简介:

当我们在编写程序的时候,免不了要与数据库打交道,相信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的博客,原文链接:保存ResultSet中的数据(Java Source Code),如需转载请自行联系原博主。


相关文章
|
11天前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
1月前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
40 6
|
1月前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
91 3
|
12天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
29 2
|
12天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
21 2
|
16天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
38 2
|
22天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
39 2
|
27天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
1月前
|
Java
Java Set以其“不重复”的特性,为我们提供了一个高效、简洁的处理唯一性约束数据的方式。
【10月更文挑战第16天】在Java编程中,Set接口确保集合中没有重复元素,每个元素都是独一无二的。HashSet基于哈希表实现,提供高效的添加、删除和查找操作;TreeSet则基于红黑树实现,不仅去重还能自动排序。通过这两个实现类,我们可以轻松处理需要唯一性约束的数据,提升代码质量和效率。
37 2
|
23天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
13 0