Поделиться через


Основные сведения о различиях между типами данных

Скачать драйвер JDBC

Есть целый ряд различий между типами данных языка программирования Java и типами данных SQL Server. Microsoft JDBC Driver для SQL Server помогает уменьшить значимость этих различий посредством различных преобразований.

Символьные типы

Типы данных строки символов JDBC — CHAR, VARCHAR, и LONGVARCHAR. Драйвер JDBC обеспечивает поддержку API-интерфейса JDBC 4.0. Типы данных строки символов JDBC версии 4.0 также возможны — NCHAR, NVARCHAR, and LONGNVARCHAR. Эти новые типы символьных строк поддерживают собственные символьные типы Java в формате Юникода и исключают необходимость выполнять какие-либо преобразования из ANSI в Юникод или из Юникода в ANSI.

Тип Описание
Фиксированная длина Типы данных SQL Server char и nchar сопоставляются непосредственно с типами CHAR и NCHAR. Они представляют собой типы фиксированной длины с заполнением, предоставляемым сервером, при условии, что для столбца установлено значение SET ANSI_PADDING ON. Заполнение всегда включено для nchar, а что касается char, то в случае, если на сервере заполнение для столбцов символьных типов не предусмотрено, то заполнение добавляет драйвер JDBC.
Переменная длина Типы SQL Server varchar и nvarchar сопоставляются непосредственно с типами VARCHAR и NVARCHAR соответственно.
Long Типы SQL Server text и ntext соответствуют JDBC LONGVARCHAR и LONGNVARCHAR. Эти типы являются устаревшими, начиная с версии SQL Server 2005 (9.x), поэтому вместо них следует использовать типы больших значений, varchar (max) или nvarchar (max) .

При использовании методов update<Numeric Type> и updateObject (int, java.lang.Object) по отношению к серверным столбцам text и ntext произойдет сбой. Однако использование метода setObject с указанным символьным типом преобразования по отношению к серверным столбцам text и ntext поддерживается.

Типы двоичных строк

Двоичные строковые типы JDBC BINARY, VARBINARY и LONGVARBINARY.

Тип Описание
Фиксированная длина Тип SQL Server binary сопоставляется непосредственно с типом JDBC BINARY. Это тип фиксированной длины с заполнением, предоставляемым сервером в случае, если для столбца установлено значение SET ANSI_PADDING ON. Если на сервере заполнение для столбцов символьных типов не предусмотрено, то заполнение добавляет драйвер JDBC.

Тип SQL Server timestamp представляет собой тип JDBC BINARY с постоянной длиной 8 байт.
Переменная длина Тип SQL Server varbinary сопоставляется с типом JDBC VARBINARY.

Тип udt в SQL Server сопоставляется с JDBC как тип VARBINARY.
Long Тип SQL Server image сопоставляется с типом JDBC LONGVARBINARY. Этот тип является устаревшим начиная с версии SQL Server 2005 (9.x), и вместо него следует использовать тип больших значений varbinary(max) .

Точные числовые типы

Точные числовые типы JDBC непосредственно сопоставляются с аналогичными типами SQL Server.

Тип Описание
BIT Тип BIT JDBC представляет единственный бит, который может иметь значение 0 или 1. Сопоставляется с типом SQL Server bit.
TINYINT Тип JDBC TINYINT представляет единственный байт. Сопоставляется с типом SQL Server tinyint.
SMALLINT Тип JDBC SMALLINT представляет 16-разрядное целочисленное значение со знаком. Сопоставляется с типом SQL Server smallint.
INTEGER Тип JDBC INTEGER представляет 32-разрядное целочисленное значение со знаком. Сопоставляется с типом SQL Server int.
bigint Тип JDBC BIGINT представляет 64-разрядное целочисленное значение со знаком. Сопоставляется с типом SQL Server bigint.
NUMERIC Тип JDBC NUMERIC представляет значение десятичного числа постоянной точности, которое хранит значения идентичной точности. Тип NUMERIC сопоставляется с типом SQL Server numeric.
DECIMAL Тип JDBC DECIMAL представляет значение десятичного числа постоянной точности, которое хранит значения по крайней мере указанной точности. Тип DECIMAL сопоставляется с типом SQL Server decimal.

Тип JDBC DECIMAL сопоставляется с типами SQL Server money и smallmoney, которые являются десятичными типами с фиксированной точностью, хранящимися в 8 и 4 байтах соответственно.

Приблизительные числовые типы

Приблизительными числовыми типами JDBC являются REAL, DOUBLE и FLOAT.

Тип Описание
real Тип JDBC REAL имеет семь цифр точности (одинарная точность) и непосредственно сопоставляется с типом SQL Server real.
DOUBLE Тип JDBC DOUBLE имеет 15 цифр точности (двойная точность) и сопоставляется с типом SQL Server float. Тип JDBC FLOAT является синонимом DOUBLE. В связи с возможной путаницей между FLOAT и DOUBLE предпочтительным является DOUBLE.

Типы даты и времени

Тип отметки времени JDBC TIMESTAMP сопоставляется с типами SQL Server datetime и smalldatetime. Значения типа datetime хранятся в двух четырехбайтовых целых числах. Тип smalldatetime хранит ту же информацию (дату и время), но с меньшей точностью, в двух двухбайтовых целых числах типа small.

Примечание

Тип SQL Server timestamp — это тип двоичной строки фиксированной длины. Он не сопоставляется ни с одним типом из типов JDBC, для представления времени: DATE, TIME, или TIMESTAMP.

Сопоставление пользовательских типов

Сопоставление пользовательских типов JDBC, использующее интерфейсы SQLData для усовершенствованных типов JDBC (пользовательские, типы Struct и так далее). не реализовано в драйвере JDBC.

См. также раздел

Основные сведения о типах данных JDBC Driver