标签: cachedrowset

RowSet,CachedRowSet等的实现

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

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

我需要下载它们还是它们带有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
查看次数