保存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 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
697 6
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
462 4
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
670 16
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
|
自然语言处理 Java 关系型数据库
Java|小数据量场景的模糊搜索体验优化
在小数据量场景下,如何优化模糊搜索体验?本文分享一个简单实用的方案,虽然有点“土”,但效果还不错。
413 0
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
1053 4
|
数据采集 JSON Java
Java爬虫获取微店快递费用item_fee API接口数据实现
本文介绍如何使用Java开发爬虫程序,通过微店API接口获取商品快递费用(item_fee)数据。主要内容包括:微店API接口的使用方法、Java爬虫技术背景、需求分析和技术选型。具体实现步骤为:发送HTTP请求获取数据、解析JSON格式的响应并提取快递费用信息,最后将结果存储到本地文件中。文中还提供了完整的代码示例,并提醒开发者注意授权令牌、接口频率限制及数据合法性等问题。