Пакет 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
    • DriverManager class — устанавливает соединение с драйвером
    • SQLPermission class — предоставляет разрешения, когда код, выполняющийся в рамках Security Manager, например, апплет, пытается настроить поток регистрации через DriverManager
    • Driver interface — предоставляет API для регистрации и подключения драйверов на основе технологии JDBC («JDBC-драйверы»); обычно используется только классом DriverManager
    • DriverPropertyInfo class — предоставляет свойства для JDBC-драйвера; не используется обычным пользователем
  • Отправка SQL-запросов в базу данных
    • Statement — используется для отправки основных SQL-запросов
    • PreparedStatement — используется для отправки подготовленных запросов или основных SQL-запросов (производные от Statement )
    • CallableStatement — используется для вызова хранимых процедур базы данных (производные от PreparedStatement )
    • Connection interface — предоставляет методы для создания запросов и управления соединениями и их свойствами
    • Savepoint — предоставляет точки сохранения в транзакции
  • Получение и обновление результатов запроса
    • ResultSet interface
  • Стандартные соответствия SQL-типов классам и интерфейсам языка программирования Java
    • Array interface — соответствие SQL ARRAY
    • Blob interface — соответствие SQL BLOB
    • Clob interface — соответствие SQL CLOB
    • Date class — соответствие SQL DATE
    • NClob interface — соответствие SQL NCLOB
    • Ref interface — соответствие SQL REF
    • RowId interface — соответствие SQL ROWID
    • Struct interface — соответствие SQL STRUCT
    • SQLXML interface — соответствие SQL XML
    • Time class — соответствие SQL TIME
    • Timestamp class — соответствие SQL TIMESTAMP
    • Types class — предоставляет константы для SQL-типов
  • Настройка соответствия пользовательского SQL-типа (UDT) классу на языке программирования Java
    • SQLData interface — определяет соответствие UDT экземпляру данного класса
    • SQLInput interface — предоставляет методы для чтения атрибутов UDT из потока
    • SQLOutput interface — предоставляет методы для записи атрибутов UDT обратно в поток
  • Метаданные
    • DatabaseMetaData interface — предоставляет информацию о базе данных
    • ResultSetMetaData interface — предоставляет информацию о столбцах объекта ResultSet
    • ParameterMetaData interface — предоставляет информацию о параметрах команд 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 тип. Следующие три шага устанавливают настройку отображения:
  1. Определение SQL-структурированного типа или DISTINCT типа в SQL
  2. Определение класса на языке программирования Java, к которому будет сопоставлен SQL-UDT. Этот класс должен реализовывать интерфейс SQLData
  3. Введение записи в карту типов объекта Connection, содержащую два элемента:
    • полное квалифицированное имя SQL-UDT
    • объект Class для класса, реализующего интерфейс SQLData

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

Интерфейс Описание
Array

Сопоставление в языке программирования Java для типа SQL ARRAY

Blob

Представление (сопоставление) в языке программирования Java™ значения SQL BLOB

CallableStatement

Интерфейс, используемый для выполнения SQL-хранимых процедур.

Clob

Сопоставление в языке программирования Java™ для типа SQL CLOB

Connection

Соединение (сессия) с конкретной базой данных.

ConnectionBuilder

Библиотека, созданная из объекта DataSource, используемая для установления соединения с базой данных, которую представляет объект data source

DatabaseMetaData

Подробная информация о базе данных в целом.

Driver

Интерфейс, который должен реализовывать каждый класс драйвера.

DriverAction

Интерфейс, который должен быть реализован, когда драйвер Driver хочет получать уведомления от DriverManager

NClob

Сопоставление в языке программирования Java™ для типа SQL NCLOB

ParameterMetaData

Объект, который может использоваться для получения информации о типах и свойствах каждого параметра-маркера в объекте PreparedStatement

PreparedStatement

Объект, представляющий предварительно скомпилированное SQL-предложение.

Ref

Сопоставление в языке программирования Java значения SQL REF, которое является ссылкой на значение SQL-структурированного типа в базе данных.

ResultSet

Таблица данных, представляющая результирующий набор базы данных, который обычно генерируется выполнением запроса к базе данных.

ResultSetMetaData

Объект, который может использоваться для получения информации о типах и свойствах столбцов в объекте ResultSet

RowId

Представление (сопоставление) в языке программирования Java значения SQL ROWID.

Savepoint

Представление сохраняемой точки, которая является точкой внутри текущей транзакции, к которой можно обратиться из метода Connection.rollback

ShardingKey

Интерфейс, используемый для указания того, что этот объект представляет собой разбиение ключа.

ShardingKeyBuilder

Библиотека, созданная из объекта DataSource или XADataSource, используемая для создания ShardingKey с подключами поддерживаемых типов данных.

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 DATE

DriverManager

Основная служба для управления набором драйверов JDBC.

DriverPropertyInfo

Свойства драйвера для создания соединения.

SQLPermission

Разрешение, которое SecurityManager проверит, когда код, выполняющий приложение с включённым SecurityManager, вызывает метод DriverManager.deregisterDriver, метод DriverManager.setLogWriter, метод DriverManager.setLogStream (устарел), метод SyncFactory.setJNDIContext, метод SyncFactory.setLogger, метод Connection.setNetworkTimeout или метод Connection.abort

Time

Тонкая обертка вокруг класса java.util.Date, которая позволяет API JDBC идентифицировать это как значение SQL TIME

Timestamp

Тонкая обертка вокруг java.util.Date, которая позволяет API JDBC идентифицировать это как значение SQL TIMESTAMP

Types

Класс, определяющий константы, используемые для идентификации общих типов SQL, называемых типами JDBC.

Перечисление Описание
ClientInfoStatus

Перечисление статуса причины, по которой свойство не могло быть установлено через вызов Connection.setClientInfo

JDBCType

Определяет константы, которые используются для идентификации общих типов SQL, называемых типами JDBC.

PseudoColumnUsage

Перечисление для использования псевдо/скрытых столбцов.

RowIdLifetime

Перечисление для значений срока жизни RowId.

Исключение Описание
BatchUpdateException

Подкласс SQLException, выбрасываемый при ошибке во время операции пакетного обновления.

DataTruncation

Исключение, выбрасываемое как DataTruncation исключение (при записи) или сообщается как DataTruncation предупреждение (при чтении), когда значения данных неожиданно усекаются по причинам, не связанным с превышением MaxFieldSize.

SQLClientInfoException

Подкласс SQLException, выбрасывается, когда одно или несколько свойств клиентской информации не могут быть установлены для Connection.

SQLDataException

Подкласс SQLException, выбрасываемый, когда значение SQLState равно '22', или в условиях, определённых поставщиком.

SQLException

Исключение, предоставляющее информацию об ошибке доступа к базе данных или других ошибках.

SQLFeatureNotSupportedException

Подкласс SQLException, выбрасываемый, когда значение SQLState равно '0A' (значение равно 'ноль' A).

SQLIntegrityConstraintViolationException

Подкласс SQLException, выбрасываемый, когда значение SQLState равно '23', или в условиях, определённых поставщиком.

SQLInvalidAuthorizationSpecException

Подкласс SQLException, выбрасываемый, когда значение SQLState равно '28', или в условиях, определённых поставщиком.

SQLNonTransientConnectionException

Подкласс SQLException, выбрасываемый для значения SQLState '08', или в условиях, определённых поставщиком.

SQLNonTransientException

Подкласс SQLException, выбрасываемый, когда повторная попытка той же операции завершится неудачей, пока причина SQLException не будет исправлена.

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, выбрасывается в ситуациях, когда ранее неудачная операция может быть успешно выполнена при повторной попытке без вмешательства функциональности уровня приложения.

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

Spec-Zone .ru
спецификации, руководства, описания, API