当前位置: 首页 > 面试题库 >

RowSet,CachedRowSet等的实现

郗亦
2023-03-14
问题内容

直到今天,我一直ResultSet在处理查询结果。但是,今天我读了关于小RowSetCachedRowset,我意识到,他们可以为我的目的更好。虽然在所有示例中我都读到哪里RowSetCachedRowSet称为对象,但是当我在代码中亲自尝试时,我意识到它们是接口,并且在示例中它们使用了这些接口的某些实现。

现在我的问题是我在哪里可以找到这些实现,并且有什么正式的东西吗?

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


问题答案:

这些实现是JRE特定的。Oracle(Sun)JRE附带了许多实现:

  • com.sun.rowset.JdbcRowSetImpl
  • com.sun.rowset.CachedRowSetImpl
  • com.sun.rowset.WebRowSetImpl
  • com.sun.rowset.FilteredRowSetImpl
  • com.sun.rowset.JoinRowSetImpl

在Java 1.6及更低版本中,您需要自己构建它们:

JdbcRowSet rowSet = new JdbcRowSetImpl();
rowSet.setDataSourceName("jdbc/dbname");
// Or
rowSet.setUrl("jdbc:vendor://host:port/dbname");
rowSet.setUsername("username");
rowSet.setPassword("password");

rowSet.setCommand("SELECT id, name, value FROM tbl");
rowSet.execute();

while (rowSet.next()) {
    // ...
}

在Java 1.7中,可以通过javax.sql.rowset工厂获得它们,这样您就不必依赖底层JRE实现,并且可以在必要时微调所选实现:

RowSetFactory rowSetFactory = RowSetProvider.newFactory();
JdbcRowSet rowSet = rowSetFactory.createJdbcRowSet();
// ...

它仅不提供通过ResultSet继续施工的可能性。这些实现与普通的JDBC驱动程序不兼容(至少MySQL和PostgreSQL没有)。基本上,这是JDBC
API上额外的(可选)层,作为包名称前缀的javax提示。

请注意,如果通过研究行集可以解决问题,那么您可能需要考虑研究ORM,例如Hibernate或JPA。它们提供了第一级/第二级缓存的可能性。

也可以看看:

  • JDBC指南-第10章-行集
  • JDBC RowSet教程,由Oracle提供
  • Java 8 javax.sql.rowset软件包摘要
  • 适用于Oracle的com.sun.rowset实现的OpenJDK 8中的源代码,具有Classpath异常的 Gnu GPL 2许可证


 类似资料:
  • 问题内容: 我正在研究部分应用程序的使用情况,但是我只能找到有关使用专有sun实现或Oracle特定实现的信息。 sun的实现不受支持,并且可能会发生变化。如果将来我想将其部署到非Sun虚拟机上,使用此方法也可能会导致问题,最后,它在构建日志中留下了无法抑制的警告,可以掩盖其他警告。 我是否可以与我的应用程序一起部署一个开源替代实现,该实现在多个数据库之间都能很好地工作?至少支持MySQL的东西。

  • 我试图找出实现java Equals的正确方法。 在网上阅读时,我看到关于这个主题有很多想法,我将其缩小为2个选项:1使用的实例和使用getClass()!=obj.getClass() 遵循的规则: https://docs.oracle.com/javase/7/docs/api/java/lang/object.html#Equals(java.lang.object)这是我的最终结果: 你

  • 问题内容: 我正在从可能更改的视图中查询数据。在执行操作之前,我需要知道该列是否存在。我发现可以查询这样的元数据,以便在从该列请求数据之前查看是否存在该列。 有没有一种更简单的检查列是否存在的方法? 编辑:它必须是数据库不可知的。这就是为什么我引用而不是数据库的原因。 问题答案: 通用JDBC API并不是简单的方法(至少我不知道,或者找不到……我在自己的工具集中有完全相同的代码。) (您的代码不

  • 本文向大家介绍Kafka中的幂等是怎么实现的相关面试题,主要包含被问及Kafka中的幂等是怎么实现的时的应答技巧和注意事项,需要的朋友参考一下 pid+序号实现,单个producer内幂等? 扩展问题: Kafka中有那些地方需要选举?这些地方的选举策略又有哪些? 失效副本是指什么?有那些应对措施? 多副本下,各个副本中的HW和LEO的演变过程 为什么Kafka不支持读写分离? Kafka在可靠性

  • 本文向大家介绍selenium WebDriverWait类等待机制的实现,包括了selenium WebDriverWait类等待机制的实现的使用技巧和注意事项,需要的朋友参考一下 在自动化测试脚本的运行过程中,可以通过设置等待的方式来避免由于网络延迟或浏览器卡顿导致的偶然失败,常用的等待方式有三种: 一、固定等待(time)   固定待是利用python语言自带的time库中的sleep()方

  • 我知道Gson没有类似的功能,但是有没有办法像JsonUnwrap那样增加对Json字段的解包支持? 目标是允许这样的结构: 要(反)序列化为: 而不是: 我知道这可能会变得相当复杂,所以我不是在寻找一个完整的解决方案,如果这是可行的,我只是寻求一些高级别的指导方针。