Расширенные типы данных в языке SQL

Расширенные типы данных в языке SQLТип ARRAY языка SQL представляет собой последовательность значений. Например, таблица Student может иметь столбец с оценками Scores типа ARRAY OF INTEGER, то есть с массивом целочисленных значений. Для возвращения данных типа java.sql.Array используется метод getArray(). В интерфейсе java.sql.Array также предусмотрены методы извлечения значений массива.

Тип данных SQL Тип данных Java
INTEGER или INT Int
SMALLINT Short
NUMERIC, DECIMAL или DEC java.math.BigDecimal
FLOAT Double
REAL Float
DOUBLE Double
CHARACTER или CHAR String
VARCHAR, LONGCHAR String
BOOLEAN Boolean
DATE java.sql.Date
TIME java.sql.Time
TIMESTAMP java.sql.TimeStamp
BLOB java.sql.Blob
CLOB java.sql.clob
ARRAY java.sql.Array
ROWID java.sql.RowId
NCHAR, NVARCHAR, LOG NVARCHAR String
NCLOB java.sql.NClob
SQLXML java.sql.SQLXML

При получении LOB-обьекта или массива из базы данные фактически доставляются только после запроса отдельных значений. Это сделано для повышения эффективности работы. Дело в том, что размер объектов может оказаться очень большим. Некоторые базы данных поддерживают значения ROWID, которые описывают местонахождения строки, благодаря чему ее можно извлечь очень быстро. JDBC 4 содержит интерфейс java.sql.RowId и предлагает методы для передачи идентификатора(ID) строки в запросы и извлечения его из результатов.

Строка национальных символов(NCHAR — national character string, и его варианты) хранит строки в локальной кодировке символов и сортирует их согласно условиям локальной сортировки. JDBC 4 предлагает методы для преобразования между объектами Java String и строками национальных символов в запросах и результатах.

В некоторых базах данных допускается хранение типов, определенных пользователем. В JDBC 3 поддерживается механизм автоматического отображения структурных типов SQL в Java-объекты. Скоро планируется написать серию материалов на тему разработка интернет магазина на Java с использованием SQL, для укрепления сегодняшнего материала.

Некоторые базы данных предлагают естественное хранение данных XML. JDBC 4 предлагает интерфейс SQLXML, который может быть связующим звеном между внутренним представлением XML и интерфейсами DOM Source/Result, а также двоичными потоками. Подробнее о классе SQLXML можно найти в документации по API.