ResultSetDynaClass与RowSetDynaClass类的应用

5 篇文章 0 订阅

转自:http://jhlishero.iteye.com/blog/754135

 

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

 

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

 

以下是实例代码:

Java代码 复制代码  收藏代码
  1. package demo04;   
  2.   
  3. import java.sql.Connection;   
  4. import java.sql.DriverManager;   
  5. import java.sql.PreparedStatement;   
  6. import java.sql.ResultSet;   
  7. import java.util.Iterator;   
  8. import java.util.List;   
  9.   
  10. import org.apache.commons.beanutils.DynaBean;   
  11. import org.apache.commons.beanutils.ResultSetDynaClass;   
  12. import org.apache.commons.beanutils.RowSetDynaClass;   
  13.   
  14. /**  
  15.  * ResultSetDynaClass类可以包装java.sql.ResultSet类:一次返回一个结果  
  16.  * RowSetDnyaClass类包装java.sql.ResultSet:一次性返回所以结果  
  17.  */  
  18. public class ResultSetDynaClassTest {   
  19.   
  20.     public static void main(String args[]) throws Exception {   
  21.         readDBResult();   
  22.     }   
  23.   
  24.     public static void readDBResult() throws Exception {   
  25.         Connection conn = null;   
  26.         ResultSet rs = null;   
  27.         PreparedStatement pstmt = null;   
  28.   
  29.         try {   
  30.             Class.forName("com.mysql.jdbc.Driver");   
  31.             String url = "jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=GBK";   
  32.             String username="root";   
  33.             String password = "root";   
  34.             conn = DriverManager.getConnection(url,username, password);   
  35.             pstmt = conn.prepareStatement("select id,username, password from user");   
  36.             rs = pstmt.executeQuery();   
  37.                
  38.             //使用java.sql.ResultSet输出   
  39.             while(rs.next()) {   
  40.                 System.out.println("username=" + rs.getString("username"));   
  41.             }   
  42.                
  43.             //使用Common BeanUtils中的ResultSetDynaClass类包装   
  44.             System.out.println("-----------分割线---------------------");   
  45.             rs.beforeFirst();//这里必须使用beforeFirst   
  46.             ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);   
  47.             Iterator<DynaBean> rows = rsdc.iterator();   
  48.             while(rows.hasNext()) {   
  49.                 DynaBean row = rows.next();   
  50.                 System.out.println("id=" + row.get("id") + ",username="    
  51.                         + row.get("username") + ",password="  
  52.                         + row.get("password"));   
  53.             }   
  54.                
  55.             //使用RowSetDnyaClass类   
  56.             System.out.println("-----------分割线---------------------");   
  57.             rs.beforeFirst();//这里必须使用beforeFirst   
  58.             RowSetDynaClass rc = new RowSetDynaClass(rs);   
  59.             List<DynaBean> resultList = rc.getRows();   
  60.             for(DynaBean db : resultList) {   
  61.                 System.out.print(db.get("id") + "\t");   
  62.                 System.out.print(db.get("username") + "\t");   
  63.                 System.out.println(db.get("password"));   
  64.             }   
  65.         } finally {   
  66.             if(pstmt!=null)   
  67.                 pstmt.close();   
  68.             if(rs!=null)   
  69.                 rs.close();   
  70.             if(conn!=null)   
  71.                 conn.clearWarnings();   
  72.         }   
  73.     }   
  74. }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值