DynaClass,DynaBean使用

rowSetDynaClass用例 rowSetDynaClass是一个在java与页面交互的时候,动态读取列表的一个好用的类 立即下载
DynaClass/DynaBean
 这似乎是BeanUtils中最有趣的部分之一了,很简单,简单到光看这两个接口中的方法会不明白
 为什么要设计这两个接口。不过看到ResultSetDynaClass后,就明白了。下面是java doc中的代码:
    ResultSet rs = ...;
    ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);
    Iterator rows = rsdc.iterator();
    while (rows.hasNext())  {
      DynaBean row = (DynaBean) rows.next();
      ... process this row ...
    }
    rs.close();
 原来这是一个ResultSet的包装器,ResultSetDynaClass实现了DynaClass,它的iterator方法返回一个
 ResultSetIterator,则是实现了DynaBean接口。
 在获得一个DynaBean之后,我们就可以用
      DynaBean row = (DynaBean) rows.next();
      System.out.println(row.get("field1")); //field1是其中一个字段的名字
 
 再看另一个类RowSetDynaClass的用法,代码如下:
 String driver="com.mysql.jdbc.Driver";
 String url="jdbc:mysql://localhost/2hu?useUnicode=true&characterEncoding=GBK";
 String username="root";
 String password="";
 
 java.sql.Connection con=null;
 PreparedStatement ps=null;
 ResultSet rs=null;
 try {
 Class.forName(driver).newInstance();
 con = DriverManager.getConnection(url);
 ps=con.prepareStatement("select * from forumlist");
 rs=ps.executeQuery();
 //先打印一下,用于检验后面的结果。
 while(rs.next()){
 System.out.println(rs.getString("name"));
 }
 rs.beforeFirst();//这里必须用beforeFirst,因为RowSetDynaClass只从当前位置向前滚动
 
 RowSetDynaClass rsdc = new RowSetDynaClass(rs);
 rs.close();
 ps.close();
 List rows = rsdc.getRows();//返回一个标准的List,存放的是DynaBean
 for (int i = 0; i <rows.size(); i++) {
 DynaBean b=(DynaBean)rows.get(i);
 System.out.println(b.get("name"));
 }
 } catch (Exception e) {
 e.printStackTrace();
 }
 finally{
 try {
 con.close();
 } catch (Exception e) {
 }
 }
 
 是不是很有趣?封装了ResultSet的数据,代价是占用内存。如果一个表有10万条记录,rsdc.getRows()
 就会返回10万个记录。@_@
 
 需要注意的是ResultSetDynaClass和RowSetDynaClass的不同之处:
 1,ResultSetDynaClass是基于Iterator的,一次只返回一条记录,而RowSetDynaClass是基于
 List的,一次性返回全部记录。直接影响是在数据比较多时ResultSetDynaClass会比较的快速,
 而RowSetDynaClass需要将ResultSet中的全部数据都读出来(并存储在其内部),会占用过多的
 内存,并且速度也会比较慢。
 2,ResultSetDynaClass一次只处理一条记录,在处理完成之前,ResultSet不可以关闭。
 3,ResultSetIterator的next()方法返回的DynaBean其实是指向其内部的一个固定
 对象,在每次next()之后,内部的值都会被改变。这样做的目的是节约内存,如果你需要保存每
 次生成的DynaBean,就需要创建另一个DynaBean,并将数据复制过去,下面也是java doc中的代码:
    ArrayList results = new ArrayList(); // To hold copied list
    ResultSetDynaClass rsdc = ...;
    DynaProperty properties[] = rsdc.getDynaProperties();
    BasicDynaClass bdc =
      new BasicDynaClass("foo", BasicDynaBean.class,
                         rsdc.getDynaProperties());
    Iterator rows = rsdc.iterator();
    while (rows.hasNext()) {
      DynaBean oldRow = (DynaBean) rows.next();
      DynaBean newRow = bdc.newInstance();
      PropertyUtils.copyProperties(newRow, oldRow);
      results.add(newRow);
    }
 
 事实上DynaClass/DynaBean可以用于很多地方,存储各种类型的数据。 
湿敏电阻HR202的两种驱动方案实测:IO充放电法 vs. 交流方波ADC法,哪个更适合你? 本文深入评测湿敏电阻HR202的两种驱动方案:IO充放电法和交流方波ADC法。通过原理图分析、精度实测和资源占用对比,揭示交流方波ADC法在精度和稳定性上的优势,特别适合长期监测场景。同时提供IO充放电法在资源受限情况下的应用建议,帮助工程师根据项目需求做出最优选择。 阅读详情

相关推荐

stata:stata软件教程(人大十八讲)(1) 第一章 stata入门

第一章 stata入门1.1 安装1.2 启用和退出1.3 打开和查看数据1.4 寻求帮助与网络资源1.5 命令示例1.6 几个环境设置1.7 复习与练习1.8 附录 注:教材为:Stata 统计分析教程 stata软件教程(人大十八讲) 中国人民大学出版社 陈传波 1.1 安装 1.2 启用和退出 1.3 打开和查看数据 1.4 寻求帮助与网络资源 1.5 命令示例 1.6 几个环境设置 1.7 复习与练习 1.8 附录 ...

qq_47805483的博客 1万+

DynaProperty、DynaBean及DynaClass类的使用

DynaProperty、DynaBean及DynaClass类的使用

xinyuan的专栏 2459

【CV论文精读】【协同感知综述】Collaborative Perception for Autonomous Driving :Current Status and Future Trend

感知是自动驾驶系统的关键模块之一,近年来取得了很大进展。然而,单个车辆的有限能力导致感知性能提高的瓶颈。为了突破个体感知的局限,协作感知被提出,它使车辆能够共享信息来感知视线和视野之外的环境。本文综述了有前途的协作感知技术的相关工作,包括介绍了基本概念,概括了协作模式,总结了协作感知的关键要素和应用。最后,我们讨论了这一研究领域面临的挑战和问题,并给出了一些潜在的进一步方向。

weixin_44184852的博客 4689

java dynabean_BeanUtils接口中的动态bean:DynaBeans的使用和ResultSetDynaClass,RowSetDynaClass等其他类...

我们知道PropertyUtils类提供了动态获取/设置既存JavaBean类的属性,但是并不修改JavaBean类。另一种动态属性访问的方式是希望表示动态计算的JavaBean属性集,而不是去编写实际的Java类来表示这些属性。除了节省创建和维护单独的java类的工作之外,这个功能意味着可以可以处理动态决定的属性。(例如将SQL查询语句的结果作为JavaBeans来表示)。为了提供这个功能,Be...

weixin_39886841的博客 359

字节跳动程序媛教你如何刷算法题:面试手撕代码我就没怕过

本人上一次刷题还是大一的C语言期末考试……但是面试中算法考核截止上岸前一直保持着100%正确率的光辉记录。 本文将给你指明一条刷题的决胜指南。并从算法的重要性、题库的选择以及刷题的三大步骤分别进行讲解,彻底解决你所有关于面试算法所有的困扰。

Stay Hungry Stay Foolish 求知若饥 虚心若愚 2万+

嵌入式开发中SAR与ΔΣ ADC选型指南:从原理到实战应用

模数转换器是嵌入式系统连接模拟世界与数字世界的核心接口,其选型直接决定了数据采集的精度与可靠性。SAR ADC采用逐次逼近原理,如同天平称重,通过二进制搜索快速完成转换,具备高速、多通道轮询的优势,适合电机控制、通信等动态场景。ΔΣ ADC则基于过采样与噪声整形技术,以速度换取精度,通过数字滤波输出高分辨率结果,在传感器测量、音频采集等静态高精度领域表现卓越。理解这两种架构的工作原理差异,是进行嵌入式ADC选型的基础。在实际工程中,需结合信号带宽、多通道切换需求、功耗约束及PCB布局能力进行综合权衡。例如,

weixin_30140399的博客 244

DynaClass,DynaBean使用 .

DynaClass/DynaBean 这似乎是BeanUtils中最有趣的部分之一了,很简单,简单到光看这两个接口中的方法会不明白 为什么要设计这两个接口。不过看到ResultSetDynaClass后,就明白了。下面是java doc中的代码: ResultSet rs = ...; ResultSetDynaClass rsdc = new ResultSetDyn...

geshenyisunjie的博客 741

XDMA Scatter-Gather(SG)模式

XDMA Scatter-Gather(SG)模式 是 Xilinx FPGA 中用于高效处理 ​非连续内存数据 的 DMA 传输机制,通过 ​描述符链表(Descriptor List)​ 管理多块分散数据,显著减少 CPU 开销并提升吞吐量。

浩瀚之水的专栏 2134

java dynabean_beanUtils基本用法——DynaBean - huxin1的专栏 - 优快云博客

Apache的BeanUtils包提供万能类DynaBean,使用此类可以不必创建大量的VO,Form等仅仅用来传值的对象。BeanUtils 通过三个类来实现此功能,DynaBean,DynaClass,DynaProperty,我从网上搜到一片文章,有一段讲的很详细,引用过来共同学习:http://blog.youkuaiyun.com/soleghost/archive/2006/03/06/61664...

weixin_36238982的博客 837

4.Simulink基础建模操作——加减乘除运算

加减乘除运算

FPGA/MATLAB学习教程/源码/项目合作开发 9549

【LAMMPS学习】八、基础知识(2.1)2D模拟

此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。LAMMPS 源代码分发的examples目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。

荷塘阅色 1250

探索中前进:Commons-BeanUtils用法系列一:DynaBean基本用法

Apache的BeanUtils包提供万能类DynaBean,使用此类可以不必创建大量的VO,Form等仅仅用来传值的对象。 BeanUtils 通过三个类来实现此功能,DynaBean,DynaClass,DynaProperty,我从网上搜到一片文章,有一 段讲的很详细,引用过来共同学习:   http://blog.youkuaiyun.com/soleghost/archive/2006...

Sun的记事本 551

头歌OpenGauss数据库-G.视图的使用

OpenGauss数据库-G.视图的使用

python一生之敌的博客 1383

runtime动态定义的JavaBean:DynaBean,DynaClass,DynaProperty

A DynaBean is a Java object that supports properties whose names and data types, as well as values, may be dynamically modified. To the maximum degree feasible, other components of the BeanUtils pac

Bitcoin学习中,欢迎吐槽 927

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

BeanUtils.DynaBean and BeanUtils.DynaClass 介紹

所有的 Dynamic JavaBean 都是实作 DynaBean 或 DynaClass 这两个 interface, 也可能会用到 DynaProperty class 来存取 properties . 我们为何要用到 Dynamic JavaBean 呢, 例如, 你从资料库取出来的资料, 有时候可能是三个栏位, 有时候是四个栏位, 如果我们对于每个 Bean 都要去写一个 class,

java与篮球 1176

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

DynaBean

 DynaBean是BeanUtils里的宝贝之一。有了动态Bean,就不用写那么多VO出来了,特别那些只是为了和View交互而存在的bean,i hate Form Bean。     DynaBean的用法很简单,特别是有了LazyBynaBean之后.         DynaBean car = new LazyDynaBean();         car.set("carNo",1

soleghost的专栏 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Jakarta-Common-BeanUtils研究心得(2)[转载]

作者 :SonyMusic    2003.05.13六、ConstructorUtils补遗创建对象还有一个方法:invokeExactConstructor,该方法对参数要求更加严格,传递进去的参数必须严格符合构造方法的参数列表。例如:Object[] args={new Integer(1), "Jan"};Class[] argsType={int.class, String.class}

天道酬勤 1618

beanUtils基本用法——DynaBean

Apache的BeanUtils包提供万能类DynaBean,使用此类可以不必创建大量的VO,Form等仅仅用来传值的对象。 BeanUtils 通过三个类来实现此功能,DynaBean,DynaClass,DynaProperty,我从网上搜到一片文章,有一 段讲的很详细,引用过来共同学习

huxin1的专栏 1万+

commons-beanutils.jar中的DynaBean

文章出处:我的博客 我的生活有关动态bean的一些用法,涉及到的类如下: 1、DynaBean是一个接口,它的实现类有BasicDynaBean、LazyDynaBean、ResultSetIterator、WrapDyna­Bean 2、DynaClass,也是接口,它的实现类有BasicDynaClass、WrapDynaClass等 3、DynaProperty,用来设置

我的博客 我的生活 1364

Jakarta-Common-BeanUtils研究心得(2)

作者 :SonyMusic    2003.05.13六、ConstructorUtils补遗创建对象还有一个方法:invokeExactConstructor,该方法对参数要求更加严格,传递进去的参数必须严格符合构造方法的参数列表。例如:Object[] args={new Integer(1), "Jan"};Class[] argsType={int.class, String.class}

qiqijava的专栏 808

用DynaBean减除不必要的VO和FormBean

DynaBean是BeanUtils里的宝贝之一。有了动态Bean,就不用写那么多VO出来了,特别那些只是为了和View交互而存在的bean,i hate Form Bean。      DynaBean的用法很简单,特别是有了LazyBynaBean之后.          DynaBean car = new LazyDynaBean();          car.set("car

雲竹小师傅的破庙 1483

DynaBean的应用

有关动态bean的一些用法,涉及到的类如下: 1、DynaBean是一个接口,它的实现类有BasicDynaBean、LazyDynaBean、ResultSetIterator、WrapDyna­Bean 2、DynaClass,也是接口,它的实现类有BasicDynaClass、WrapDynaClass等 3、DynaProperty,用来设置动态bean的属性 4、Property

2074

转:DynaBean 的使用

DynaBean 的使用        在正常的开发的过程中,我们时常会遇到这样的问题, JavaBean 的属性是不确定的、动态的,其属性的确定是由逻辑控制来处理的。比如这样的一种情况,有一组基本报表信息需要 JavaBean 来描述,这组报表在结构上具有很大的相似性,如果你不想为每一份基本报表都创建一个 JavaBean ,那么接下来为你介绍一种为 JavaBean 动态创建属性的方法。 ...

王二北的个人博客 974

Jakarta-Common-BeanUtils研究心得

一、概述第一次看到BeanUtils包,是在Struts项目中,作为Struts一个工具来使用的,估计功能越弄越强,就移到Common项目中了吧。BeanUtils一共有四个package:org.apache.commons.beanutilsorg.apache.commons.beanutils.convertersorg.apache.commons.beanutils.localeorg

neujyj的专栏 879
上一篇: 开发总结:基于SWT保存两树型表的关联关系
下一篇: ThreadLocal的设计与使用
danning
博客等级 码龄22年 5粉丝 72原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值