Spec-Zone .ru
спецификации, руководства, описания, API
|
JDBC 4.1, который является частью Java SE 7, представляет следующие функции:
try
- оператор с ресурсами, чтобы автоматически закрыть ресурсы типа Connection
, ResultSet
, и Statement
RowSetFactory
взаимодействуйте через интерфейс и RowSetProvider
class, которые позволяют Вам создать все типы наборов строк, поддерживаемых Вашим драйвером JDBC.Можно использовать a try
- оператор с ресурсами, чтобы автоматически закрыться java.sql.Connection
, java.sql.Statement
, и java.sql.ResultSet
объекты, независимо от ли a SQLException
или любое другое исключение было выдано. A try
- оператор с ресурсами состоит из a try
оператор и один или более объявленные ресурсы (которые разделяются точками с запятой).
См. Оператор попытки с ресурсами для получения дополнительной информации
Следующий пример использует a try
- оператор с ресурсами, чтобы закрыться Statement
объект, stmt
, автоматически:
public static void viewTable(Connection con) throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"; try (Statement stmt = con.createStatement()) { ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String coffeeName = rs.getString("COF_NAME"); int supplierID = rs.getInt("SUP_ID"); float price = rs.getFloat("PRICE"); int sales = rs.getInt("SALES"); int total = rs.getInt("TOTAL"); System.out.println(coffeeName + ", " + supplierID + ", " + price + ", " + sales + ", " + total); } } }
Следующий оператор является a try
- оператор с ресурсами, который объявляет один ресурс, stmt
, который будет автоматически закрыт тогда try
блок завершается:
try (Statement stmt = con.createStatement()) { // ... }
Можно использовать экземпляр RowSetFactory
создать a RowSet
объект. Следующий пример использует экземпляр RowSetFactory
создать JdbcRowSet
объект, jdbcRs
:
public void testJdbcRowSet(String username, String password) throws SQLException { RowSetFactory myRowSetFactory = null; JdbcRowSet jdbcRs = null; ResultSet rs = null; Statement stmt = null; try { myRowSetFactory = RowSetProvider.newFactory(); jdbcRs = myRowSetFactory.createJdbcRowSet(); jdbcRs.setUrl("jdbc:myDriver:myAttribute"); jdbcRs.setUsername(username); jdbcRs.setPassword(password); jdbcRs.setCommand("select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"); jdbcRs.execute(); // ...
Следующий оператор создает RowSetProvider
объект myRowSetFactory
со значением по умолчанию RowSetFactory
реализация, com.sun.rowset.RowSetFactoryImpl
:
myRowSetFactory = RowSetProvider.newFactory();
Альтернативно, если у Вашего драйвера JDBC есть свое собственное RowSetFactory
реализация, можно определить это как параметр newFactory
.
Следующие операторы создают JdbcRowSet
объект jdbcRs
и сконфигурируйте его свойства соединения с базой данных:
jdbcRs = myRowSetFactory.createJdbcRowSet(); jdbcRs.setUrl("jdbc:myDriver:myAttribute"); jdbcRs.setUsername(username); jdbcRs.setPassword(password);
RowSetFactory
интерфейс содержит методы, чтобы создать различные типы RowSet
реализации, доступные в JDBC 4.1 и позже:
createCachedRowSet
createFilteredRowSet
createJdbcRowSet
createJoinRowSet
createWebRowSet