zoukankan      html  css  js  c++  java
  • ResultSet,RowSet,OracleCachedRowSet和RowSetMetaData区别及联系

          在java主要涉及到数据开发的过程中,我们会和数据库打交道很多,其中使用了数据集比如ResultSet和RowSet,经常使用两种,还有其它的一些,那么这两种的主要区别是什么呢?我们先来看它们引入的方式,ResultSet:import java.sql.ResultSet;  RowSet: import javax.sql.RowSet; 典型的区别是引入的路径不一样:

    java和javax都是Java的API(Application Programming Interface)包,java是核心包,javax的x是extension的意思,也就是扩展包。java类库是java发布之初就确定了的基础库,而javax类库则是在上面增加的一层东西,就是为了保持版本兼容要保存原来的,但有些东西有了更好的解决方案,所以,就加上些。

    所以我们就可以知道ResultSet要比RowSet出现的早,就是java发布初期就存在的,我们查询API也可以看到RowSet是从version 1.4才有的,public interface RowSet extends ResultSet

    RowSet 接口扩展了标准 java.sql.ResultSet 接口。RowSetMetaData 接口扩展了 java.sql.ResultSetMetaData 接口.

    那么我们在使用的时候尽量使用扩展的RowSet就可以满足要求:

        Connection dbconn = null;        
            
        PreparedStatement psQuery = null;
    
        RowSet rsQuery = null;
    
        String sQuery = "select a,b from table";
    
        try{
        DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
        dbconn =
            DriverManager.getConnection(
                        "xxxx",
                        "username",
                        "ps");
        dbconn.setAutoCommit(false);
        
        psQuery=dbconn.prepareStatement(sQuery);
          
        rsQuery = psQuery.executeQuery();
    
        while (rsQuery.next())   {
            String name = rsQuery.getString("a");
            logger.info("user name is: "+name);
         }
        
       } catch (SQLException e){
          e.printStackTrace();
       }

    CachedRowSet 对象是一个数据行的容器,可在内存中缓存其各行,这使得进行操作时无需总是连接到数据源,CachedRowSet 对象是一个非连接 rowset,这意味着它只会短暂地连接其数据源。在需要连接后及时断开数据源的情境下可以使用缓存RowSet,也就是CachedRowSet,

    那么OracleCachedRowSet就是Oracle对于CachedRowSet的扩展实现。

    RowSetMetaData那么就是扩展了ResultSetMetaData, 顾名思义就是元数据,就是基础信息,比如列的数量,类型等,常用的比如需要得到列数目getColumnCount():

    所以简单总结就是RowSet是对ResultSet的扩展,MetaData是元数据,CachedRowSet则是可以缓存不需要实时连接数据源的。
  • 相关阅读:
    表单元素input与文字对齐
    css hack较全
    闭合浮动
    字体
    css中z-index属性(包含各浏览器对此兼容问题)
    ie中使用滤镜实现css3的效果
    css实现提示框
    css3实现渐变效果
    css伪类
    .net core运用application/x-www-form-urlencoded发起post请求
  • 原文地址:https://www.cnblogs.com/practice-h/p/9008361.html
Copyright © 2011-2022 走看看