Spec-Zone.ru › OpenJDK 25

Пакет java.sql

package 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

Классы, интерфейсы, методы, поля, конструкторы и исключения снабжены следующими тегами "since", указывающими, когда они были добавлены в платформу Java. В комментариях Javadoc для API JDBC эти теги "since" означают следующее:

  • 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 -- сопоставление для SQL ARRAY
    • Интерфейс Blob -- сопоставление для SQL BLOB
    • Интерфейс Clob -- сопоставление для SQL CLOB
    • Класс Date -- сопоставление для SQL DATE
    • Интерфейс NClob -- сопоставление для SQL NCLOB
    • Интерфейс Ref -- сопоставление для SQL REF
    • Интерфейс RowId -- сопоставление для SQL ROWID
    • Интерфейс Struct -- сопоставление для SQL STRUCT
    • Интерфейс SQLXML -- сопоставление для SQL XML
    • Класс Time -- сопоставление для SQL TIME
    • Класс Timestamp -- сопоставление для SQL TIMESTAMP
    • Класс 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.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 для возврата максимального логического размера 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 -- добавлена поддержка цепочки причин; добавлены новые SQLExceptions для распространённых кодов значений классов 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 (JNDI) используется для регистрации объекта DataSource в службе именования, а также для его получения.
  • Пул соединений -- возможность использовать соединения повторно
  • Распределённые транзакции -- возможность охватить одной транзакцией несколько серверов СУБД
  • Технология RowSet -- удобное средство обработки и передачи данных

Пользовательское сопоставление UDT

Определяемый пользователем тип (UDT), заданный в SQL, можно сопоставить с классом языка программирования Java. Структурированный тип SQL или тип SQL DISTINCT — это UDT, которые можно сопоставить пользовательским образом. Пользовательское сопоставление настраивается в три этапа:
  1. Определение структурированного типа SQL или типа DISTINCT в SQL
  2. Определение класса языка программирования Java, с которым будет сопоставлен UDT SQL. Этот класс должен реализовывать интерфейс SQLData.
  3. Добавление записи в карту типов объекта Connection, содержащей две составляющие:
    • полное имя UDT в SQL
    • объект Class для класса, реализующего интерфейс SQLData

После настройки этих параметров для UDT вызов методов ResultSet.getObject или CallableStatement.getObject для этого UDT автоматически получит пользовательское сопоставление. Кроме того, метод PreparedStatement.setObject автоматически сопоставит объект с его типом SQL для сохранения в источнике данных.

Спецификация пакета

  • Спецификация JDBC 4.3

Связанная документация

  • Урок: основы JDBC (учебные материалы Java > доступ к базам данных JDBC)
  • «Руководство и справочник по API JDBC, третье издание»
Начиная с:
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
Интерфейс, указывающий, что этот объект представляет ключ сегментирования (Sharding Key).
ShardingKeyBuilder
Построитель, созданный на основе объекта DataSource или XADataSource и используемый для создания ShardingKey с подчинёнными ключами поддерживаемых типов данных.
SQLClientInfoException
Подкласс SQLException, выбрасываемый, если не удалось задать одно или несколько свойств клиентской информации для объекта Connection.
SQLData
Интерфейс для пользовательского сопоставления определяемого пользователем типа SQL (UDT) с классом языка программирования Java.
SQLDataException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно '22' или при условиях, заданных поставщиком.
SQLException
Исключение, предоставляющее сведения об ошибке доступа к базе данных или других ошибках.
SQLFeatureNotSupportedException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно '0A' (значение — «ноль» A).
SQLInput
Входной поток, содержащий поток значений, представляющих экземпляр структурированного типа SQL или отличного типа SQL.
SQLIntegrityConstraintViolationException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно '23' или при условиях, заданных поставщиком.
SQLInvalidAuthorizationSpecException
Подкласс SQLException, выбрасываемый, если значение класса SQLState равно '28' или при условиях, заданных поставщиком.
SQLNonTransientConnectionException
Подкласс SQLException, выбрасываемый для значения класса SQLState '08' или при условиях, заданных поставщиком.
SQLNonTransientException
Подкласс SQLException, выбрасываемый в ситуации, когда повтор той же операции завершится неудачей, если не устранить причину SQLException.
SQLOutput
Выходной поток для записи атрибутов определяемого пользователем типа обратно в базу данных.
SQLPermission
Объект SQLPermission содержит имя (также называемое «целевым именем»), но не содержит списка действий; разрешение либо существует для указанного имени, либо нет.
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, предоставляющих возможность получить делегированный экземпляр, если рассматриваемый экземпляр фактически является классом-прокси.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.sql/java/sql/package-summary.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API