标签: cachedrowset

RowSet,CachedRowSet等的实现

直到今天,我还在ResultSet处理查询结果时.但今天我读了一些关于RowSet并且CachedRowset我意识到他们可以更好地服务于我的目的.而在所有的例子我读到这里RowSet和CachedRowSet被简称为对象,当我尝试过自己在我的代码,我意识到那些接口,并在他们的例子使用这些接口的一些实现.

现在我的问题是我在哪里找到这些实现,是否有官方的东西?

我需要下载它们还是它们带有JDK?

java jdbc resultset rowset cachedrowset

15
推荐指数
1
解决办法
2万
查看次数

除了专有的Sun之外,是否有任何好的CachedRowSet实现?

我正在调查javax.sql.rowset.CachedRowSet在我的应用程序的一部分中使用,但是我只能找到有关使用专有sun实现com.sun.rowset.CachedRowSetImpl或Oracle特定实现的信息.

sun实现不受支持且可能会发生变化.如果我希望将来部署到非Sun虚拟机,使用它也可能会导致问题,最后它会在我们的构建日志中留下不可抑制的警告,这可能会掩盖其他警告.

是否有一个开源替代实现,我可以使用我的应用程序部署,这将在多个数据库中正常工作?至少支持MySQL的东西.

java mysql jdbc cachedrowset

14
推荐指数
1
解决办法
8530
查看次数

CachedRowSetImpl无法解析为类型

我正在使用CachedRowSet来保存ResultSet表单DB.根据一些演示代码:我写下面的代码:

CachedRowSetImpl crs = new CachedRowSetImpl();
Run Code Online (Sandbox Code Playgroud)

但是eclipse提示我CachedRowSetImpl无法解析为一个类型.所以我知道我需要导入一些包.但我不知道要导入哪一个?有谁知道?

java jdbc cachedrowset

13
推荐指数
2
解决办法
9347
查看次数

如何检查CachedRowSet中是否存在列名?

我正在查询可能会发生变化的视图中的数据.在我做之前我需要知道列是否存在crs.get******().我发现我可以查询这样的元数据,以便在我从中请求数据之前查看列是否存在.

ResultSetMetaData meta = crs.getMetaData();
int numCol = meta.getColumnCount();

for (int i = 1; i < numCol+1; i++) 
    if(meta.getColumnName(i).equals("name"))
        return true;
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来检查列是否存在?

编辑:它必须是数据库不可知的.这就是我引用CachedRowSet而不是数据库的原因.

java metadata jdbc cachedrowset

9
推荐指数
2
解决办法
2万
查看次数

CachedRowSet:它仍可用于保存ResultSet数据吗?

我想编写一个java函数,它接受一个SQL查询并返回一个ResultSet以便在别处进行处理.一旦连接关闭,ResultSet就会死机,因此无法完成此操作.

谷歌搜索我发现了一篇非常古老的(2004)OReilly文章,看起来像是治愈了:CachedRowSet.您只需放入ResultSet,CachedRowSet保存数据,让您关闭连接并使用返回的CachedRowSet在其他地方播放数据.

本文引用了Sun的CachedRowSet实现,似乎无处可寻.

现代javadocs(适用于Java 1.5及更高版本)似乎具有相同名称的"CachedRowSet",它不仅仅是ResultSet数据的持有者."CachedRowSet"似乎通过获取连接和其他所有内容来完成整个数据库处理.

那个"CachedRowSet"和旧文章中谈到的一样吗?

我想要一些简单的东西,比如旧文章.在连接关闭后将ResultSet放入进行处理的东西.

有这样的动物吗?

谢谢

java resultset cachedrowset

7
推荐指数
2
解决办法
6373
查看次数

CachedRowSet 比 ResultSet 慢?

在我的 java 代码中,我使用 select 语句访问 Oracle 数据库表。我收到很多行(大约 50.000 行),因此rs.next()需要一些时间来处理所有行。

using ResultSet, the processing of all rows (rs.next) takes about 30 secs
Run Code Online (Sandbox Code Playgroud)

我的目标是加快这个过程,所以我更改了代码,现在使用CachedRowSet:

using CachedRowSet, the processing of all rows takes about 35 secs
Run Code Online (Sandbox Code Playgroud)

我不明白为什么CachedRowSet比普通的慢ResultSet,因为CachedRowSet一次检索所有数据,而每次调用ResultSet时检索数据。rs.next

这是代码的一部分:

try {
    stmt = masterCon.prepareStatement(sql);
    rs = stmt.executeQuery();

    CachedRowSet crset = new CachedRowSetImpl();
    crset.populate(rs);

    while (rs.next()) {
        int countStar = iterRs.getInt("COUNT");
        ...
    }
} finally {
    //cleanup
}
Run Code Online (Sandbox Code Playgroud)

java oracle cachedrowset

3
推荐指数
1
解决办法
7804
查看次数

原因:java.lang.ClassCastException:无法将java.sql.Timestamp强制转换为java.sql.Date

对于以下代码段,出现以下给定错误:

  try {
        cRows = new CachedRowSetImpl();
        while(cRows.next()) 
        {
        MyClass myClass = new MyClass();
        myClass.setPrevDate(cRows.getDate("PREV_DATE")); // In debug mode, the error was throwing when I press Resume from here.
        }
      }
Run Code Online (Sandbox Code Playgroud)

错误:

Caused by: java.lang.ClassCastException: java.sql.Timestamp cannot be cast to java.sql.Date
Run Code Online (Sandbox Code Playgroud)

在数据库中,该列的数据类型DATE仅为。我不知道这里要到哪里Timestamp。

java classcastexception cachedrowset

3
推荐指数
2
解决办法
3万
查看次数

复制ResultSet而不使用CachedRowSetImpl.execute()

我正在尝试在执行查询后关闭连接.之前,我只是创建一个CachedRowSetImpl实例,它将负责为我释放资源.但是,我正在使用Hadoop项目的Hive数据库驱动程序.它不支持CachedRowSetImpl.execute().我想知道是否有其他方式可以让我复制ResultSet对象并关闭连接?

java hadoop hive resultset cachedrowset

1
推荐指数
1
解决办法
2818
查看次数