Пакет java.sql
Предоставляет API для доступа к данным, хранящимся в источнике данных (обычно реляционной базе данных), используя язык программирования Java™. Данный API включает в себя механизм, посредством которого различные драйверы могут быть динамически установлены для доступа к различным источникам данных. Хотя API JDBC™ в основном ориентирован на передачу SQL-запросов в базу данных, он предоставляет возможность чтения и записи данных из любого источника данных с табличной структурой. Модуль чтения/записи, доступный через группу интерфейсов javax.sql.RowSet, может быть настроен для использования и обновления данных из электронных таблиц, плоских файлов или любого другого источника данных с табличной структурой.
Что включает API JDBC™ 4.3
API JDBC™ 4.3 включает как пакетjava.sql, который называется ядром API JDBC, так и пакет javax.sql, который называется API дополнительного пакета JDBC. Этот полный API JDBC включен в Java™ Standard Edition (Java SE™), версия 7. Пакет javax.sql расширяет функциональность API JDBC от клиентского API до серверного API, и он является неотъемлемой частью технологии Java™ Enterprise Edition (Java EE™). Версии
API JDBC 4.3 включает в себя все предыдущие версии API JDBC:- 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
Классы, интерфейсы, методы, поля, конструкторы и исключения имеют следующие теги «с момента», которые указывают, когда они были введены в платформу Java. Когда эти теги «с момента» используются в комментариях Javadoc™ к API JDBC, они указывают следующее:
- С момента 9 — новый в API JDBC 4.3 и часть платформы Java SE, версия 9
- С момента 1.8 — новый в API JDBC 4.2 и часть платформы Java SE, версия 8
- С момента 1.7 — новый в API JDBC 4.1 и часть платформы Java SE, версия 7
- С момента 1.6 — новый в API JDBC 4.0 и часть платформы Java SE, версия 6
- С момента 1.4 — новый в API JDBC 3.0 и часть платформы J2SE, версия 1.4
- С момента 1.2 — новый в API JDBC 2.0 и часть платформы J2SE, версия 1.2
- С момента 1.1 или без тега «с момента» — в исходном API JDBC 1.0 и часть JDK™, версия 1.1
ПРИМЕЧАНИЕ: Многие новые функции являются необязательными; следовательно, есть некоторые различия в драйверах и поддерживаемых ими функциях. Всегда проверяйте документацию вашего драйвера, чтобы убедиться, что он поддерживает функцию, прежде чем использовать ее.
ПРИМЕЧАНИЕ: Класс SQLPermission был добавлен в релизе Java™ 2 SDK, Standard Edition, версия 1.3. Этот класс используется для предотвращения несанкционированного доступа к потоку регистрации, связанному с DriverManager, который может содержать информацию, такую как имена таблиц, данные столбцов и так далее.
Что содержит пакет java.sql
Пакет java.sql содержит API для следующего: - Установление соединения с базой данных с помощью средства
DriverManager-
DriverManagerclass — устанавливает соединение с драйвером -
SQLPermissionclass — предоставляет разрешения, когда код, выполняющийся в рамках Security Manager, например, апплет, пытается настроить поток регистрации черезDriverManager -
Driverinterface — предоставляет API для регистрации и подключения драйверов на основе технологии JDBC («JDBC-драйверы»); обычно используется только классомDriverManager -
DriverPropertyInfoclass — предоставляет свойства для JDBC-драйвера; не используется обычным пользователем
-
- Отправка SQL-запросов в базу данных
-
Statement— используется для отправки основных SQL-запросов -
PreparedStatement— используется для отправки подготовленных запросов или основных SQL-запросов (производные отStatement) -
CallableStatement— используется для вызова хранимых процедур базы данных (производные отPreparedStatement) -
Connectioninterface — предоставляет методы для создания запросов и управления соединениями и их свойствами -
Savepoint— предоставляет точки сохранения в транзакции
-
- Получение и обновление результатов запроса
-
ResultSetinterface
-
- Стандартные соответствия SQL-типов классам и интерфейсам языка программирования Java
-
Arrayinterface — соответствие SQLARRAY -
Blobinterface — соответствие SQLBLOB -
Clobinterface — соответствие SQLCLOB -
Dateclass — соответствие SQLDATE -
NClobinterface — соответствие SQLNCLOB -
Refinterface — соответствие SQLREF -
RowIdinterface — соответствие SQLROWID -
Structinterface — соответствие SQLSTRUCT -
SQLXMLinterface — соответствие SQLXML -
Timeclass — соответствие SQLTIME -
Timestampclass — соответствие SQLTIMESTAMP -
Typesclass — предоставляет константы для SQL-типов
-
- Настройка соответствия пользовательского SQL-типа (UDT) классу на языке программирования Java
-
SQLDatainterface — определяет соответствие UDT экземпляру данного класса -
SQLInputinterface — предоставляет методы для чтения атрибутов UDT из потока -
SQLOutputinterface — предоставляет методы для записи атрибутов UDT обратно в поток
-
- Метаданные
-
DatabaseMetaDatainterface — предоставляет информацию о базе данных -
ResultSetMetaDatainterface — предоставляет информацию о столбцах объектаResultSet -
ParameterMetaDatainterface — предоставляет информацию о параметрах командPreparedStatement
-
- Исключения
-
SQLException— выбрасывается большинством методов при проблемах доступа к данным и некоторыми методами по другим причинам -
SQLWarning— выбрасывается для указания предупреждения -
DataTruncation— выбрасывается для указания того, что данные могут быть усечены -
BatchUpdateException— выбрасывается для указания того, что не все команды в пакетном обновлении были выполнены успешно
-
java.sql и javax.sql Функции, представленные в API JDBC 4.3
- Добавлена поддержка
Sharding - Улучшен
Connectionдля возможности предоставлять подсказки драйверу о том, что запрос, независимая единица работы, начинается или завершается - Улучшен
DatabaseMetaDataдля определения поддержки Sharding - Добавлен метод
driversкDriverManagerдля возврата потока текущих загруженных и доступных JDBC-драйверов - Добавлена поддержка
Statementдля цитирования литералов и простых идентификаторов - Уточнена версия Java SE, в которой методы были устаревши
java.sql и javax.sql Функции, представленные в API JDBC 4.2
- Добавлен перечисление
JDBCTypeи интерфейсSQLType - Поддержка
REF CURSORSвCallableStatement -
DatabaseMetaDataметоды для возврата максимального размера Logical LOB и поддержки Ref Cursors - Добавлена поддержка больших значений счётчика обновлений
java.sql и javax.sql Функции, представленные в API JDBC 4.1
- Разрешено использовать объекты
Connection,ResultSetиStatementс оператором try-with-resources - Добавлена поддержка
CallableStatementиResultSetдля указания типа Java для преобразования через методgetObject -
DatabaseMetaDataметоды для возврата PseudoColumns и того, всегда ли возвращается сгенерированный ключ - Добавлена поддержка
Connectionдля указания схемы базы данных, прерывания и таймаута физического соединения. - Добавлена поддержка закрытия объекта
Statementпри закрытии его зависимых объектов - Поддержка получения родительского регистратора для
Driver,DataSource,ConnectionPoolDataSourceиXADataSource
java.sql и javax.sql Функции, представленные в API JDBC 4.0
- Автоматическое обнаружение драйверов java.sql.Driver — больше не нужно загружать класс
java.sql.DriverчерезClass.forName - Добавлена поддержка национальных наборов символов
- Добавлена поддержка SQL-типа XML SQL:2003
- Улучшения SQLException — добавлена поддержка цепочки причин; добавлены новые SQLException для общих кодов значений класса 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
Пользовательский тип данных (UDT), определённый в SQL, может быть сопоставлен с классом в языке программирования Java. UDT, которые могут быть настроены, включают SQL-структурированный тип или SQL-DISTINCT тип. Следующие три шага устанавливают настройку отображения: - Определение SQL-структурированного типа или
DISTINCTтипа в SQL - Определение класса на языке программирования Java, к которому будет сопоставлен SQL-UDT. Этот класс должен реализовывать интерфейс
SQLData - Введение записи в карту типов объекта
Connection, содержащую два элемента:- полное квалифицированное имя SQL-UDT
- объект
Classдля класса, реализующего интерфейсSQLData
При наличии этих элементов для UDT, вызов методов ResultSet.getObject или CallableStatement.getObject для этого UDT автоматически извлечёт настройку отображения. Также метод PreparedStatement.setObject автоматически сопоставит объект обратно с его типом SQL для хранения в источнике данных.
| Интерфейс | Описание |
|---|---|
| Array | Сопоставление в языке программирования Java для типа SQL |
| Blob | Представление (сопоставление) в языке программирования Java™ значения SQL |
| CallableStatement | Интерфейс, используемый для выполнения SQL-хранимых процедур. |
| Clob | Сопоставление в языке программирования Java™ для типа SQL |
| Connection | Соединение (сессия) с конкретной базой данных. |
| ConnectionBuilder | Библиотека, созданная из объекта |
| DatabaseMetaData | Подробная информация о базе данных в целом. |
| Driver | Интерфейс, который должен реализовывать каждый класс драйвера. |
| DriverAction | Интерфейс, который должен быть реализован, когда драйвер Driver хочет получать уведомления от |
| NClob | Сопоставление в языке программирования Java™ для типа SQL |
| ParameterMetaData | Объект, который может использоваться для получения информации о типах и свойствах каждого параметра-маркера в объекте |
| PreparedStatement | Объект, представляющий предварительно скомпилированное SQL-предложение. |
| Ref | Сопоставление в языке программирования Java значения SQL |
| ResultSet | Таблица данных, представляющая результирующий набор базы данных, который обычно генерируется выполнением запроса к базе данных. |
| ResultSetMetaData | Объект, который может использоваться для получения информации о типах и свойствах столбцов в объекте |
| RowId | Представление (сопоставление) в языке программирования Java значения SQL ROWID. |
| Savepoint | Представление сохраняемой точки, которая является точкой внутри текущей транзакции, к которой можно обратиться из метода |
| ShardingKey | Интерфейс, используемый для указания того, что этот объект представляет собой разбиение ключа. |
| ShardingKeyBuilder | Библиотека, созданная из объекта |
| SQLData | Интерфейс, используемый для настройки отображения SQL-пользовательского типа данных (UDT) на класс в языке программирования Java. |
| SQLInput | Поток ввода, который содержит поток значений, представляющих экземпляр SQL-структурированного типа или SQL-различимого типа. |
| SQLOutput | Поток вывода для записи атрибутов пользовательского типа обратно в базу данных. |
| SQLType | Объект, используемый для идентификации универсального типа SQL, называемого типом JDBC или типом, специфичным для поставщика данных. |
| SQLXML | Сопоставление в языке программирования JavaTM для типа SQL XML. |
| Statement | Объект, используемый для выполнения статического SQL-предложения и возврата результатов, которые оно производит. |
| Struct | Стандартное сопоставление в языке программирования Java для SQL-структурированного типа. |
| Wrapper | Интерфейс для классов JDBC, который предоставляет возможность извлечения делегированного экземпляра, когда рассматриваемый экземпляр на самом деле является прокси-классом. |
| Класс | Описание |
|---|---|
| Date | Тонкий обертка вокруг значения в миллисекундах, позволяющий JDBC идентифицировать это как значение SQL |
| DriverManager | Основная служба для управления набором драйверов JDBC. |
| DriverPropertyInfo | Свойства драйвера для создания соединения. |
| SQLPermission | Разрешение, которое |
| Time | Тонкая обертка вокруг класса |
| Timestamp | Тонкая обертка вокруг |
| Types | Класс, определяющий константы, используемые для идентификации общих типов SQL, называемых типами JDBC. |
| Перечисление | Описание |
|---|---|
| ClientInfoStatus | Перечисление статуса причины, по которой свойство не могло быть установлено через вызов |
| JDBCType | Определяет константы, которые используются для идентификации общих типов SQL, называемых типами JDBC. |
| PseudoColumnUsage | Перечисление для использования псевдо/скрытых столбцов. |
| RowIdLifetime | Перечисление для значений срока жизни RowId. |
| Исключение | Описание |
|---|---|
| BatchUpdateException | Подкласс |
| DataTruncation | Исключение, выбрасываемое как |
| SQLClientInfoException | Подкласс |
| SQLDataException | Подкласс |
| SQLException | Исключение, предоставляющее информацию об ошибке доступа к базе данных или других ошибках. |
| SQLFeatureNotSupportedException | Подкласс |
| SQLIntegrityConstraintViolationException | Подкласс |
| SQLInvalidAuthorizationSpecException | Подкласс |
| SQLNonTransientConnectionException | Подкласс |
| SQLNonTransientException | Подкласс |
| SQLRecoverableException | Подкласс |
| SQLSyntaxErrorException | Подкласс |
| SQLTimeoutException | Подкласс |
| SQLTransactionRollbackException | Подкласс |
| SQLTransientConnectionException | Подкласс |
| SQLTransientException | Подкласс |
| SQLWarning | Исключение, предоставляющее информацию о предупреждениях доступа к базе данных. |
© 1993, 2020, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/package-summary.html