Spec-Zone.ru › OpenJDK 17

Пакет 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. При использовании этих тегов "since" в комментариях Javadoc для API JDBC они обозначают следующее:

  • 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

ПРИМЕЧАНИЕ: Многие новые функции являются необязательными; в связи с этим есть некоторые различия в драйверах и функциях, которые они поддерживают. Всегда проверяйте документацию вашего драйвера, чтобы убедиться, что он поддерживает функцию, прежде чем использовать её.

ПРИМЕЧАНИЕ: Класс SQLPermission был добавлен в Java 2 SDK, Standard Edition, версии 1.3. Этот класс используется для предотвращения несанкционированного доступа к потоку регистрации, связанному с DriverManager, который может содержать информацию, такую как имена таблиц, данные столбцов и т. д.

Что содержит пакет java.sql

Пакет java.sql содержит API для:
  • Установления соединения с базой данных через механизм DriverManager
    • DriverManager класс -- устанавливает соединение с драйвером
    • SQLPermission класс -- предоставляет разрешения, когда код, выполняемый в рамках Security Manager, например апплет, пытается настроить поток регистрации через 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 методы для возвращения максимального размера 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:2003 XML
  • Улучшения SQLException -- добавлена поддержка цепочки причин; добавлены новые SQLException для общих кодов состояния SQLState
  • Улучшенная функциональность Blob/Clob -- предоставлена поддержка создания и освобождения экземпляра Blob/Clob, а также добавлены дополнительные методы для повышения доступности
  • Добавлена поддержка доступа к SQL ROWID
  • Добавлена поддержка доступа JDBC-приложения к экземпляру 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, дополнительную безопасность и поддержку часовых поясов в значениях дат, времени и временных меток.

Функции, представленные в API JDBC 2.0 (дополнительный пакет)

  • Интерфейс DataSource как средство для создания соединения. Java Naming and Directory Interface (JNDI) используется для регистрации объекта DataSource в службе именования, а также для его извлечения.
  • Пулы соединений — позволяющие использовать и повторно использовать соединения
  • Распределённые транзакции — позволяющие транзакции охватывать различные серверы DBMS
  • Технология RowSet, обеспечивающая удобный способ обработки и передачи данных

Настройка сопоставления UDT

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

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

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

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

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

  • Урок:Основы JDBC (JDBC Database Access)
  • «JDBC API Tutorial and Reference, Third Edition»
Класс Описание
Array
Сопоставление в языке программирования Java для типа SQL ARRAY.
BatchUpdateException
Подкласс SQLException, выбрасываемый при возникновении ошибки во время операции пакетного обновления.
Blob
Представление (отображение) в языке программирования Java значения SQL BLOB.
CallableStatement
Интерфейс, используемый для выполнения хранимых процедур SQL.
ClientInfoStatus
Перечисление статусов причины, по которой свойство не могло быть установлено с помощью вызова Connection.setClientInfo.
Clob
Сопоставление в языке программирования Java для типа SQL CLOB.
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
Сопоставление в языке программирования Java для типа SQL NCLOB.
ParameterMetaData
Объект, который может использоваться для получения информации о типах и свойствах каждого маркера параметра в объекте PreparedStatement.
PreparedStatement
Объект, представляющий предварительно скомпилированное SQL-утверждение.
PseudoColumnUsage
Перечисление для использования псевдо/скрытых столбцов.
Ref
Сопоставление в языке программирования Java значения SQL REF , которое является ссылкой на значение SQL-структурированного типа в базе данных.
ResultSet
Таблица данных, представляющая результат набора данных базы данных, который, как правило, генерируется путём выполнения запроса к базе данных.
ResultSetMetaData
Объект, который может использоваться для получения информации о типах и свойствах столбцов в объекте ResultSet.
RowId
Представление (отображение) в языке программирования Java значения SQL ROWID.
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' (значение равно 'ноль' А).
SQLInput
Поток ввода, содержащий поток значений, представляющих экземпляр SQL-структурированного типа или SQL-раздельного типа.
SQLIntegrityConstraintViolationException
Подкласс SQLException выбрасывается, когда значение SQLState равно '23', или в соответствии с условиями, указанными поставщиком.
SQLInvalidAuthorizationSpecException
Подкласс SQLException выбрасывается, когда значение SQLState равно '28', или в соответствии с условиями, указанными поставщиком.
SQLNonTransientConnectionException
Подкласс SQLException выбрасывается для значения SQLState '08', или в соответствии с условиями, указанными поставщиком.
SQLNonTransientException
Подкласс SQLException, выбрасываемый, когда повторная попытка той же операции завершится неудачей, если не будет исправлена причина SQLException.
SQLOutput
Поток вывода для записи атрибутов типа пользователя обратно в базу данных.
SQLPermission
Разрешение, которое SecurityManager будет проверять, когда код, выполняющий приложение с включённой SecurityManager, вызывает метод DriverManager.deregisterDriver, метод DriverManager.setLogWriter, метод DriverManager.setLogStream (устаревший), метод SyncFactory.setJNDIContext, метод SyncFactory.setLogger, метод Connection.setNetworkTimeout или метод Connection.abort.
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
отображение в языке программирования JavaTM для типа SQL XML.
Statement
Объект, используемый для выполнения статического SQL-запроса и возвращения результатов, которые он генерирует.
Struct
Стандартное отображение в языке программирования Java для структурированного типа SQL.
Time
Тонкий обертка вокруг класса java.util.Date, который позволяет API JDBC идентифицировать его как значение SQL TIME.
Timestamp
Тонкий обертка вокруг java.util.Date, который позволяет API JDBC идентифицировать его как значение SQL TIMESTAMP.
Types
Класс, определяющий константы, используемые для идентификации обобщённых типов SQL, называемых типами JDBC.
Wrapper
Интерфейс для классов JDBC, предоставляющий возможность извлечения экземпляра делегата, когда экземпляр на самом деле является прокси-классом.

© 1993, 2021, 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/17/docs/api/java.sql/java/sql/package-summary.html

Spec-Zone.ru

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