Реализации RowSet, CachedRowSet и т. Д. - PullRequest
15 голосов
/ 21 ноября 2011

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

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

Ответы [ 4 ]

19 голосов
/ 22 ноября 2011

Реализации являются специфическими для 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 hints.

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

Смотри также:

0 голосов
/ 07 февраля 2019

Добавьте rt.jar в Eclipse Java Build Path.Затем вы видите все реализации класса.В противном случае вы можете снять ограничение с Eclipse, не позволяющее получить доступ к rt.jar из jdk.Работает для меня.Я использовал jdk1.6 и Eclipse Luna.

0 голосов
/ 22 августа 2018

Поставляется с JDK.

В JDK 10 jar: jdk-10.0.2 / lib / jrt-fs.jar

И пакет / класс внутри jaris: javax.sql.RowSet.class

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

danielpm1982@gmail.com

enter image description here

enter image description here

0 голосов
/ 21 ноября 2011

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

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

...