Пакет java.sql
javax.sql.RowSet, можно настроить для использования и обновления данных в электронной таблице, плоском файле или любом другом табличном источнике данных. Что включает API JDBC 4.5
API JDBC 4.5 включает пакетjava.sql, называемый базовым API JDBC, и пакет javax.sql, называемый API дополнительного пакета JDBC. Полный API JDBC входит в Java Standard Edition (Java SE). Пакет javax.sql расширяет функциональность API JDBC, превращая клиентский API в серверный API; он является неотъемлемой частью технологии Java Enterprise Edition (Java EE). Версии
API JDBC 4.5 включает все предыдущие версии API JDBC:- API JDBC 4.4
- API JDBC 4.3
- API JDBC 4.2
- API JDBC 4.1
- API JDBC 4.0
- API JDBC 3.0
- Базовый API JDBC 2.1
- API дополнительного пакета JDBC 2.0
(Обратите внимание: базовый API JDBC 2.1 и API дополнительного пакета JDBC 2.0 вместе называются API JDBC 2.0.) - API JDBC 1.2
- API JDBC 1.0
Для классов, интерфейсов, методов, полей, конструкторов и исключений используются следующие теги "since", указывающие, когда они были добавлены в платформу Java. В комментариях Javadoc для API JDBC эти теги "since" обозначают следующее:
- Since 26 — новое в API JDBC 4.5 и входит в платформу Java SE версии 26
- Since 24 — новое в API JDBC 4.4 и входит в платформу Java SE версии 24
- Since 9 — новое в API JDBC 4.3 и входит в платформу Java SE версии 9
- Since 1.8 — новое в API JDBC 4.2 и входит в платформу Java SE версии 8
- Since 1.7 — новое в API JDBC 4.1 и входит в платформу Java SE версии 7
- Since 1.6 — новое в API JDBC 4.0 и входит в платформу Java SE версии 6
- Since 1.4 — новое в API JDBC 3.0 и входит в платформу J2SE версии 1.4
- Since 1.2 — новое в API JDBC 2.0 и входит в платформу J2SE версии 1.2
- Since 1.1 или тег "since" отсутствует — присутствует в исходном API JDBC 1.0 и входит в JDK версии 1.1
ПРИМЕЧАНИЕ: Многие новые функции являются необязательными; поэтому драйверы и поддерживаемые ими функции могут различаться. Прежде чем использовать функцию, обязательно проверьте в документации драйвера, поддерживает ли он ее.
Содержимое пакета java.sql
Пакет java.sql содержит API для следующего: - Установление соединения с базой данных с помощью средства
DriverManager-
класс
DriverManager— устанавливает соединение с помощью драйвера -
интерфейс
Driver— предоставляет API для регистрации драйверов на основе технологии JDBC («драйверов JDBC») и установления соединений с их помощью; обычно используется только классомDriverManager -
класс
DriverPropertyInfo— предоставляет свойства для драйвера JDBC; не используется обычным пользователем
-
класс
- Отправка SQL-инструкций в базу данных
-
Statement— используется для отправки простых SQL-инструкций -
PreparedStatement— используется для отправки подготовленных или простых SQL-инструкций (производный отStatement) -
CallableStatement— используется для вызова хранимых процедур базы данных (производный отPreparedStatement) -
интерфейс
Connection— предоставляет методы для создания инструкций и управления соединениями и их свойствами -
Savepoint— предоставляет точки сохранения в транзакции
-
- Получение результатов запроса и их обновление
-
интерфейс
ResultSet
-
интерфейс
- Стандартные сопоставления типов SQL с классами и интерфейсами языка программирования Java
-
интерфейс
Array— сопоставление с типом SQLARRAY -
интерфейс
Blob— сопоставление с типом SQLBLOB -
интерфейс
Clob— сопоставление с типом SQLCLOB -
класс
Date— сопоставление с типом SQLDATE -
класс
JDBCType— предоставляет константы перечисления для типов SQL -
интерфейс
NClob— сопоставление с типом SQLNCLOB -
интерфейс
Ref— сопоставление с типом SQLREF -
интерфейс
RowId— сопоставление с типом SQLROWID -
интерфейс
Struct— сопоставление с типом SQLSTRUCT -
интерфейс
SQLXML— сопоставление с типом SQLXML -
класс
Time— сопоставление с типом SQLTIME -
класс
Timestamp— сопоставление с типом SQLTIMESTAMP -
класс
Types— предоставляет константы для типов SQL
-
интерфейс
- Пользовательское сопоставление определяемого пользователем типа SQL (UDT) с классом языка программирования Java
-
интерфейс
SQLData— определяет сопоставление UDT с экземпляром этого класса -
интерфейс
SQLInput— предоставляет методы для чтения атрибутов UDT из потока -
интерфейс
SQLOutput— предоставляет методы для записи атрибутов UDT обратно в поток
-
интерфейс
- Метаданные
-
интерфейс
DatabaseMetaData— предоставляет информацию о базе данных -
интерфейс
ResultSetMetaData— предоставляет информацию о столбцах объектаResultSet -
интерфейс
ParameterMetaData— предоставляет информацию о параметрах командPreparedStatement
-
интерфейс
- Исключения
-
SQLException— выбрасывается большинством методов при возникновении проблемы с доступом к данным, а некоторыми методами — по другим причинам -
SQLWarning— выбрасывается для обозначения предупреждения -
DataTruncation— выбрасывается для обозначения возможного усечения данных -
BatchUpdateException— выбрасывается для обозначения того, что не все команды пакетного обновления выполнены успешно
-
Функции java.sql и javax.sql, появившиеся в API JDBC 4.5
- Интерфейсы
Array,Blob,Clob,NClobиSQLXMLтеперь расширяют интерфейсAutoCloseableи включают реализацию методаcloseпо умолчанию - В
Connectionдобавлена поддержка заключения литералов и простых идентификаторов в кавычки SQLPermissionsпомечен как устаревший для последующего удаления- Типы SQL
JSONиDECFLOATдобавлены вJDBCTypeиTypes
Функции java.sql и javax.sql, появившиеся в API JDBC 4.4
- Удалено упоминание
SecurityManagerиSecurityException, посколькуSecurityManagerбольше не поддерживается SQLPermissionsбольше нельзя использовать для управления доступом к ресурсам, посколькуSecurityManagerбольше не поддерживается- В
Connectionдобавлена поддержка заключения литералов и простых идентификаторов в кавычки
Функции java.sql и javax.sql, появившиеся в API JDBC 4.3
- Добавлена поддержка
Sharding - В
Connectionдобавлена возможность передавать драйверу указания о начале или завершении запроса — независимой единицы работы - В
DatabaseMetaDataдобавлена возможность определять, поддерживается ли шардирование - В
DriverManagerдобавлен методdrivers, возвращающий поток текущих загруженных и доступных драйверов JDBC - В
Statementдобавлена поддержка заключения литералов и простых идентификаторов в кавычки - Уточнена версия Java SE, в которой методы были объявлены устаревшими
Функции java.sql и javax.sql, появившиеся в API JDBC 4.2
- Добавлены перечисление
JDBCTypeи интерфейсSQLType - Добавлена поддержка
REF CURSORSвCallableStatement -
Методы
DatabaseMetaDataдля получения максимального логического размера LOB и сведений о поддержке курсоров Ref - Добавлена поддержка больших счетчиков обновлений
Функции java.sql и javax.sql, появившиеся в API JDBC 4.1
- Разрешено использовать объекты
Connection,ResultSetиStatementв операторе try-with-resources - В
CallableStatementиResultSetдобавлена возможность указывать тип Java для преобразования с помощью методаgetObject -
Методы
DatabaseMetaDataдля получения псевдостолбцов и сведений о том, всегда ли возвращается сгенерированный ключ - В
Connectionдобавлена поддержка указания схемы базы данных, прерывания физического соединения и установки времени ожидания. - Добавлена поддержка закрытия объекта
Statementпри закрытии зависимых от него объектов - Добавлена поддержка получения родительского средства ведения журнала для
Driver,DataSource,ConnectionPoolDataSourceиXADataSource
Функции java.sql и javax.sql, появившиеся в API JDBC 4.0
- Автоматическое обнаружение java.sql.Driver — больше не нужно загружать класс
java.sql.Driverс помощьюClass.forName - Добавлена поддержка национальных наборов символов
- Добавлена поддержка типа данных XML из SQL:2003
- Усовершенствования SQLException — добавлена поддержка цепочек причин; добавлены новые исключения SQL для распространенных кодов значений класса SQLState
- Расширена функциональность Blob/Clob — добавлена поддержка создания и освобождения экземпляров Blob/Clob, а также дополнительные методы для упрощения доступа
- Добавлена поддержка доступа к SQL ROWID
- Добавлена поддержка доступа приложения JDBC к экземпляру ресурса JDBC, обернутому поставщиком, обычно в среде сервера приложений или пула соединений.
- Добавлена возможность получать уведомления о закрытии
PreparedStatement, связанного сPooledConnection, или о том, что драйвер считает его недействительным
Функции java.sql и javax.sql, появившиеся в API JDBC 3.0
- Пулируемые инструкции — повторное использование инструкций, связанных с пулом соединений
- Точки сохранения — позволяют откатить транзакцию до указанной точки сохранения
- Свойства, определенные для
ConnectionPoolDataSource, — задают порядок объединения соединений в пул - Метаданные параметров объекта
PreparedStatement - Возможность получать значения автоматически сгенерированных столбцов
- Возможность одновременно получать несколько объектов
ResultSetиз открытых объектовCallableStatement - Возможность идентифицировать параметры объектов
CallableStatementпо имени, а также по индексу -
Удерживаемость
ResultSet— возможность указывать, должны ли курсоры оставаться открытыми или закрываться в конце транзакции - Возможность получать и обновлять экземпляр структурированного типа SQL, на который ссылается объект
Ref - Возможность программно обновлять значения
BLOB,CLOB,ARRAYиREF. - Добавлен тип данных
java.sql.Types.DATALINK, предоставляющий драйверам JDBC доступ к объектам, хранящимся вне источника данных - Добавлены метаданные для получения иерархий типов SQL
Функции java.sql, появившиеся в базовом API JDBC 2.1
- Прокручиваемые наборы результатов — новые методы интерфейса
ResultSetпозволяют перемещать курсор к определенной строке или в позицию относительно текущей - Пакетные обновления
- Программные обновления — с помощью методов обновления
ResultSet - Новые типы данных — интерфейсы, сопоставляющие типы данных SQL3
- Пользовательское сопоставление определяемых пользователем типов (UDT)
- Различные функции, включая подсказки для повышения производительности, использование символьных потоков, полную точность значений
java.math.BigDecimal, дополнительные средства безопасности и поддержку часовых поясов для значений даты, времени и метки времени.
Функции javax.sql, появившиеся в API дополнительного пакета JDBC 2.0
- Интерфейс
DataSourceдля установления соединения. Java Naming and Directory Interface (JNDI) используется для регистрации объектаDataSourceв службе именования, а также для его получения. - Пулируемые соединения — позволяют использовать соединения повторно
- Распределенные транзакции — позволяют транзакции охватывать несколько серверов СУБД
-
Технология
RowSet— обеспечивает удобный способ обработки и передачи данных
Пользовательское сопоставление UDT
Определенный в SQL пользовательский тип (UDT) можно сопоставить с классом языка программирования Java. Структурированный тип SQL или тип SQLDISTINCT — это UDT, для которых можно задать пользовательское сопоставление. Пользовательское сопоставление настраивается в три этапа: - Определение структурированного типа SQL или типа
DISTINCTв SQL - Определение класса языка программирования Java, с которым будет сопоставлен UDT SQL. Этот класс должен реализовывать интерфейс
SQLData. - Добавление записи в карту типов объекта
Connection, содержащей два элемента:- полное имя UDT в SQL
- объект
Classдля класса, реализующего интерфейсSQLData
После настройки этих элементов для UDT вызов методов ResultSet.getObject или CallableStatement.getObject для этого UDT автоматически получит для него пользовательское сопоставление. Кроме того, метод PreparedStatement.setObject автоматически сопоставит объект с его типом SQL для сохранения в источнике данных.
Спецификация пакета
Связанная документация
- С версии:
- 1.1
| Класс | Описание |
|---|---|
| Array | Сопоставление типа SQL ARRAY в языке программирования Java. |
| BatchUpdateException | Подкласс SQLException, выбрасываемый при возникновении ошибки во время операции пакетного обновления. |
| Blob | Представление (сопоставление) значения SQL BLOB в языке программирования Java. |
| CallableStatement | Интерфейс, используемый для выполнения хранимых процедур SQL. |
| ClientInfoStatus | Перечисление причин, по которым свойство не удалось задать вызовом Connection.setClientInfo
|
| Clob | Сопоставление типа SQL CLOB в языке программирования Java. |
| Connection | Соединение (сеанс) с определенной базой данных. |
| ConnectionBuilder | Построитель, созданный из объекта DataSource и используемый для установления соединения с базой данных, которую представляет объект data source. |
| DatabaseMetaData | Полная информация о базе данных в целом. |
| DataTruncation | Исключение, выбрасываемое как исключение DataTruncation (при записи) или регистрируемое как предупреждение DataTruncation (при чтении), когда значение данных неожиданно усекается по причинам, не связанным с превышением MaxFieldSize. |
| Date | Тонкая обертка над значением в миллисекундах, позволяющая JDBC идентифицировать его как значение SQL DATE. |
| Driver | Интерфейс, который должен реализовывать каждый класс драйвера. |
| DriverAction | Интерфейс, который необходимо реализовать, если Driver должен получать уведомления от DriverManager. |
| DriverManager | Основное средство управления набором драйверов JDBC. |
| DriverPropertyInfo | Свойства драйвера для установления соединения. |
| JDBCType | Определяет константы для идентификации общих типов SQL, называемых типами JDBC. |
| NClob | Сопоставление типа SQL NCLOB в языке программирования Java. |
| ParameterMetaData | Объект, который можно использовать для получения информации о типах и свойствах каждого маркера параметра в объекте PreparedStatement. |
| PreparedStatement | Объект, представляющий предварительно скомпилированную SQL-инструкцию. |
| PseudoColumnUsage | Перечисление вариантов использования псевдостолбцов/скрытых столбцов. |
| Ref | Сопоставление значения SQL REF в языке программирования Java; это значение является ссылкой на значение структурированного типа SQL в базе данных. |
| ResultSet | Таблица данных, представляющая набор результатов базы данных, который обычно создается при выполнении инструкции, запрашивающей базу данных. |
| ResultSetMetaData | Объект, который можно использовать для получения информации о типах и свойствах столбцов объекта ResultSet. |
| RowId | Представление (сопоставление) значения SQL ROWID в языке программирования Java. |
| RowIdLifetime | Перечисление значений срока жизни RowId. |
| Savepoint | Представление точки сохранения — точки в текущей транзакции, на которую можно сослаться с помощью метода Connection.rollback. |
| ShardingKey | Интерфейс, указывающий, что этот объект представляет ключ шардирования. |
| ShardingKeyBuilder | Построитель, созданный из объекта DataSource или XADataSource и используемый для создания ShardingKey с подчиненными ключами поддерживаемых типов данных. |
| SQLClientInfoException | Подкласс SQLException, выбрасываемый, если для объекта Connection не удалось задать одно или несколько свойств клиентской информации. |
| SQLData | Интерфейс для пользовательского сопоставления определяемого пользователем типа SQL (UDT) с классом языка программирования Java. |
| SQLDataException | Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «22» или при условиях, определенных поставщиком. |
| SQLException | Исключение, содержащее сведения об ошибке доступа к базе данных или другой ошибке. |
| SQLFeatureNotSupportedException | Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «0A» (значение — «ноль» и A). |
| SQLInput | Входной поток значений, представляющих экземпляр структурированного или отдельного типа SQL. |
| SQLIntegrityConstraintViolationException | Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «23» или при условиях, определенных поставщиком. |
| SQLInvalidAuthorizationSpecException | Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «28» или при условиях, определенных поставщиком. |
| SQLNonTransientConnectionException | Подкласс SQLException, выбрасываемый при значении класса SQLState «08» или при условиях, определенных поставщиком. |
| SQLNonTransientException | Подкласс SQLException, выбрасываемый в ситуации, когда повторная попытка выполнить ту же операцию завершится неудачей, если не устранить причину SQLException. |
| SQLOutput | Выходной поток для записи атрибутов определяемого пользователем типа обратно в базу данных. |
| SQLPermission | Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Для этого класса нет замены. |
| SQLRecoverableException | Подкласс SQLException, выбрасываемый в ситуациях, когда ранее завершившаяся неудачей операция может завершиться успешно, если приложение выполнит некоторые действия по восстановлению и повторит всю транзакцию, а в случае распределенной транзакции — ее ветвь. |
| SQLSyntaxErrorException | Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «42» или при условиях, определенных поставщиком. |
| SQLTimeoutException | Подкласс SQLException, выбрасываемый по истечении времени ожидания, заданного параметрами Statement.setQueryTimeout, DriverManager.setLoginTimeout, DataSource.setLoginTimeout,XADataSource.setLoginTimeout. |
| SQLTransactionRollbackException | Подкласс SQLException, выбрасываемый, если значение класса SQLState равно «40» или при условиях, определенных поставщиком. |
| SQLTransientConnectionException | Подкласс SQLException для значения класса SQLState «08» или при условиях, определенных поставщиком. |
| SQLTransientException | Подкласс SQLException, выбрасываемый в ситуациях, когда ранее завершившаяся неудачей операция может завершиться успешно при повторной попытке без вмешательства средств уровня приложения. |
| SQLType | Объект, используемый для идентификации общего типа SQL, называемого типом JDBC или типом данных, специфичным для поставщика. |
| SQLWarning | Исключение, содержащее сведения о предупреждениях при доступе к базе данных. |
| SQLXML | Сопоставление типа SQL XML в языке программирования JavaTM. |
| Statement | Объект для выполнения статической SQL-инструкции и получения созданных ею результатов. |
| Struct | Стандартное сопоставление структурированного типа SQL в языке программирования Java. |
| Time | Тонкая обертка над классом java.util.Date, позволяющая API JDBC идентифицировать его как значение SQL TIME. |
| Timestamp | Тонкая обертка над java.util.Date, позволяющая API JDBC идентифицировать его как значение SQL TIMESTAMP. |
| Types | Класс, определяющий константы для идентификации общих типов SQL, называемых типами JDBC. |
| Wrapper | Интерфейс для классов JDBC, позволяющих получить делегирующий экземпляр, если рассматриваемый экземпляр фактически является классом-прокси. |
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.