问题标签 [cachedrowset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 序列化 CachedRowSet
所以我已经明白了什么是 CachedRowSet。主要是它保存数据,而不是其他需要连接并每次检索数据的行集/结果集。因为它不需要连接,所以它是可序列化的,我引用了 CachedRowSet 的 Java SE 8 文档
CachedRowSet 对象是数据行的容器,将其行缓存在内存中,这使得无需始终连接到其数据源即可进行操作。此外,它是一个 JavaBeans™ 组件并且是可滚动的、可更新的和可序列化的。
我已尽我所能搜索文档,如果它是可序列化的,它必须直接或间接地实现可序列化接口的更高层次结构。我没有看到这一点,所以我对它如何在没有可序列化实现的情况下可序列化感到困惑。
java - CachedRowSet 上的左外连接
我想对两个 CachedRowSet 执行左连接。好像 JoinRowSetImpl 只支持 INNER JOIN。我可以用什么来让左加入工作?
谢谢并恭祝安康。
java - 使用 RowSetProvider 时出现 newFactory() 错误
尝试从 Netbeans11.2 (java) 中的 ResultSet 创建 CachedRowSet 但在 RowSetProvider 类中查找 newFactory() 时出错。IE
newFactory 上的错误。
我已经进口了 - javax.sql.rowset.*
;
已根据提示安装并激活选中的 JAVA SE 13.0.1。
也许是配置问题任何线索?
java - Java JDBC CachedRowSet 创建导致 NullPointerException
我正在创建 Java 程序和 MySQL 数据库之间的连接。代码中唯一未包含的内容是ConnectionValue
提取每个特定连接/查询所需的所有相关连接数据的类。这个类确实有效。当我运行代码时,它会创建一个NullPointerException
.
堆栈跟踪报告错误发生在第 14 行。这是cachedRowSet.setUsername(connectionValues.userName);
函数中的createCachedRowSet
。数据是正确的,我有一个测试打印方法,可以打印代码中的相关信息,它不仅可以无误地提取相同的数据,而且可以打印正确的信息。所以我不确定出了什么问题。认识我,这可能很明显,但我看不到。
java - java中SELECT的方法:返回什么以及如何关闭资源?
我是 Java 新手。我正在尝试创建一个类,其中包含一些用于 Java 1.6 中 SQL 操作的实用方法,以用于一般目的。
我已经写下了 a以在数据库上selectMethod
获取 a 的结果。SELECT
问题:如果我的selectMethod
方法返回一个ResultSet
类型,那么当我调用该方法时,其相关资源(ResultSet
, Statement
)将不可避免地保持打开状态:我无法从另一个方法关闭它们,因为它们已被创建到selectMethod
... 另一方面我无法关闭他们在里面selectMethod
,否则后者不会返回任何东西。
所以我的观点是:==> 我怎样才能关闭资源?<==
我不能使用,try-with-resource
因为我使用的是早期版本的 Java。
在类似的问题中,我还没有找到克服这个问题的“一般方法”。
解决方案:目前我只知道两种方法:
A)避免创建一个selectMethod
返回ResultSet
类型的方法,只创建一个在内部执行查询的方法,以及对查询结果的其他操作。然后将所有资源关闭到方法中。
例子:
A) 的缺点:我想要一个通用的 SQL 类,并且不限于特定任务......
B)进入selectMethod
,将数据复制ResultSet
到aCachedRowSet
并返回CachedRowSet
。
例子:
B)的缺点:我害怕在多行选择时内存不足。我无法使用分页进行查询,因为LIMIT... OFFSET...
我的数据库版本低于 Oracle 12g,并且我不想对 insert 进行查询操作row_number() between ... and ...
。我希望我的实用程序可以处理任何类型的查询。
有谁知道其他解决方案?
提前致谢。
java - CachedRowSet 分页和连接池
我希望同时使用 SQL 连接池(通过 HikariCP)和CachedRowSet
. 但我想澄清一下它们是如何相互作用的。
在下面的示例中,我创建了一个连接池(使用 HikariCP),从池中获取连接,执行查询,然后CachedRowSet
使用从执行返回的 ResultSet 填充分页,然后对其进行处理和迭代。
我的问题是如何/何时将连接添加回池中?要返回一个连接,我通常会调用conn.close()
,但是我不确定 CachedRowSet 内部会发生什么。调用 `cachedRowSet.populate(...) 后是否立即关闭连接?或者直到所有结果都被迭代完?
我的目标是避免长时间从池中取出连接,同时还能够处理潜在的长时间运行和处理密集型查询。
java - 为什么 SyncResolver 的冲突行中没有冲突值?
从我在SyncResolver javadoc 中读到的内容:
应用程序可以调用 SyncResolver 方法 getConflictValue 来检索数据源中导致冲突的值,因为 SyncResolver 对象中的值是来自数据源的冲突值。
所以我正在重现这种情况,但由于某种原因,该方法返回 null 就像根本没有冲突一样。
表定义:
表格内容:
测试它的Java代码:
我在 updateRowSet 方法的开头设置断点,并从程序外部(终端)运行以下语句:
我60
每次都在更改号码以引起冲突。
我正在使用 Java 11 和 MariaDB 2.53。