`
nvry
  • 浏览: 320533 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ResultSetDynaClass与RowSetDynaClass类的应用

阅读更多

本文转载于:http://jhlishero.iteye.com/blog/754135

 

1、ResultSetDynaClass 是基于Iterator的,一次只返回一条记录,在ResultSetDynaClass没有操作完以前,ResultSet对象不能关闭。

 

2、RowSetDynaClass是基于List的,一次返回所有的结果。

 

以下是实例代码:

package demo04;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.ResultSetDynaClass;
import org.apache.commons.beanutils.RowSetDynaClass;

/**
 * ResultSetDynaClass类可以包装java.sql.ResultSet类:一次返回一个结果
 * RowSetDnyaClass类包装java.sql.ResultSet:一次性返回所有结果
 */
public class ResultSetDynaClassTest {

 public static void main(String args[]) throws Exception {
  readDBResult();
 }

 public static void readDBResult() throws Exception {
  Connection conn = null;
  ResultSet rs = null;
  PreparedStatement pstmt = null;

  try {
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=GBK";
   String username="root";
   String password = "root";
   conn = DriverManager.getConnection(url,username, password);
   pstmt = conn.prepareStatement("select id,username, password from user");
   rs = pstmt.executeQuery();
   
   //使用java.sql.ResultSet输出
   while(rs.next()) {
    System.out.println("username=" + rs.getString("username"));
   }
   
   //使用Common BeanUtils中的ResultSetDynaClass类包装
   System.out.println("-----------分割线---------------------");
   rs.beforeFirst();//这里必须使用beforeFirst
   ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);
   Iterator<DynaBean> rows = rsdc.iterator();
   while(rows.hasNext()) {
    DynaBean row = rows.next();
    System.out.println("id=" + row.get("id") + ",username=" 
      + row.get("username") + ",password="
      + row.get("password"));
   }
   
   //使用RowSetDnyaClass类
   System.out.println("-----------分割线---------------------");
   rs.beforeFirst();//这里必须使用beforeFirst
   RowSetDynaClass rc = new RowSetDynaClass(rs);
   List<DynaBean> resultList = rc.getRows();
   for(DynaBean db : resultList) {
    System.out.print(db.get("id") + "\t");
    System.out.print(db.get("username") + "\t");
    System.out.println(db.get("password"));
   }
  } finally {
   if(pstmt!=null)
    pstmt.close();
   if(rs!=null)
    rs.close();
   if(conn!=null)
    conn.clearWarnings();
  }
 }
}

 

分享到:
评论

相关推荐

    Dyna Bean的使用

    除了 BasicDynaBean,BeanUtils 还提供了其他的 DynaBean 实现,如 ResultSetDynaClass 用于将数据库查询结果映射为 DynaBean,LazyDynaBean 支持延迟初始化属性等,这些都在不同场景下提供了额外的灵活性。...

    小红薯电商实操课小红书开店实操必学课.mp4

    小红薯电商实操课小红书开店实操必学课.mp4

    AI图像处理工具包-一键抠图、背景切换、旧照片修复、人像漫画化、视频卡通化(Python+OpenCV+Dlib+TensorFlow).zip

    AI图像处理工具包-一键抠图、背景切换、旧照片修复、人像漫画化、视频卡通化(Python+OpenCV+Dlib+TensorFlow).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    基于java的新能源充电系统设计与实现.docx

    基于java的新能源充电系统设计与实现.docx

    吸波材料建模单元周期仿真模拟,参数优化,计算反射损耗,极化角,入射角,等效阻抗等

    吸波材料建模单元周期仿真模拟,参数优化,计算反射损耗,极化角,入射角,等效阻抗等

    AGV调度系统的仿真平台(含源码+项目说明+实验结果分析).zip

    AGV调度系统的仿真平台(含源码+项目说明+实验结果分析).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    【本体】Internet Download Manager v6.42.26.zip

    【本体】Internet Download Manager v6.42.26.zip

    NLP中文垃圾短信分类系统源码+设计全部资料+文档报告(自然语言处理课设).zip

    NLP中文垃圾短信分类系统源码+设计全部资料+文档报告(自然语言处理课设).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    Python大作业封面.doc

    Python大作业封面.doc

    基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)

    基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业),个人经导师指导并认可通过的毕业设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开

    操作系统课后习题参考答案

    操作系统课后题参考答案

    三维几何图形绘制工具软件-几何图霸

    几何图霸软件是一个非常强大的三维几何图形绘制工具,可以根据约束条件绘制标准示意图,写相关技术类文章需要绘图时很适用。

    《写给大众的健康饮食指南》.mp4

    《写给大众的健康饮食指南》.mp4

    智能相册Piktures v2.19 build 815 for 高级版.mp4

    智能相册Piktures v2.19 build 815 for 高级版.mp4

    建行开养老金必中58元微信立减金亲测.mp4

    建行开养老金必中58元微信立减金亲测.mp4

    Converter视频音频转换器v2.2.5.2解锁VIP版.mp4

    Converter视频音频转换器v2.2.5.2解锁VIP版.mp4

    车来了v4.59.0高级版 精准实时公交地铁神器.mp4

    车来了v4.59.0高级版 精准实时公交地铁神器.mp4

    基于java的招生宣传管理系统设计与实现.docx

    基于java的招生宣传管理系统设计与实现.docx

    iiiicfdfdsffffffffffffffffffff

    iiiicfdfdsffffffffffffffffffff

Global site tag (gtag.js) - Google Analytics