Реализации набора строк, CachedRowSet и т. д

до сегодняшнего дня я работала с ResultSet при обработке результатов запросов. Но сегодня я немного прочитал о RowSet и CachedRowset и я понял, что они могут лучше служить моим целям. Хотя во всех примерах я читал где RowSet и CachedRowSet были упомянуты как объект, когда я попробовал его сам в своем коде, я понял, что это интерфейсы, и в примерах они используют некоторую реализацию этих интерфейсов.

теперь мой вопрос, где я найдите эти реализации, и есть ли что-то официальное?

мне нужно загрузить их или они поставляются с JDK?

3 ответов


реализации специфичны для 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 и чтобы вы может finetune реализации выбора при необходимости:

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

это только не дает возможности передать ResultSet на строительство. Эти реализации не поставляются со средним драйвером JDBC (по крайней мере, MySQL и PostgreSQL не имеют). Это в основном дополнительный (необязательный) слой над JDBC API в качестве префикса имени пакета javax подсказки.

обратите внимание, что если вы доберетесь до этого, заглянув в наборы строк, то вы можете рассмотреть возможность заглянуть в ORM вместо этого, например, Hibernate или JPA. Они предоставляют возможности кэша первого / второго уровня.

Читайте также:


на RowSet и CachedRowSet реализованы драйверами JDBC.

поставщик базы данных предоставляет драйверы, например Oracle или в MySQL. Однако эти драйверы имеют смысл только в сочетании с фактической базой данных.


Он поставляется с JDK.

в JDK 10 банка: jdk-10.0.2 / lib / jrt-fs.Джар

и пакет / класс внутри банки: класса javax.язык SQL.набор строк.класс!--1-->

Даниэль Пинейро

danielpm1982@gmail.com

enter image description here

enter image description here