Реализации набора строк, 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. Они предоставляют возможности кэша первого / второго уровня.
Читайте также:
- руководство JDBC-Глава 10-набор строк
- JDBC набор строк учебник, Oracle
- Java 8
javax.sql.rowset
пакета - исходный код в OpenJDK 8 для Oracle com.солнце.rowset реализация, Лицензия Gnu GPL 2 с исключение пути к классам
Он поставляется с JDK.
в JDK 10 банка: jdk-10.0.2 / lib / jrt-fs.Джар
и пакет / класс внутри банки: класса javax.язык SQL.набор строк.класс!--1-->
Даниэль Пинейро
danielpm1982@gmail.com