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


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

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

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

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

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

Тип Описание
Фиксированная длина Типы данных char и nchar SQL Server сопоставляются непосредственно с типами JDBC CHAR и NCHAR. Они представляют собой типы фиксированной длины с заполнением, предоставляемым сервером, при условии, что для столбца установлено значение SET ANSI_PADDING ON. Заполнение всегда включено для nchar, а что касается char, то в случае, если на сервере заполнение для столбцов символьных типов не предусмотрено, то заполнение добавляет драйвер JDBC.
Переменная длина Типы varchar и nvarchar SQL Server сопоставляются непосредственно с типами JDBC VARCHAR и NVARCHAR соответственно.
Long Типы текста и ntext SQL Server сопоставляются с типом 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 сопоставляется непосредственно с типом JDBC BINARY. Это тип фиксированной длины с заполнением, предоставляемым сервером в случае, если для столбца установлено значение SET ANSI_PADDING ON. Если на сервере заполнение для столбцов символьных типов не предусмотрено, то заполнение добавляет драйвер JDBC.

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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

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

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

См. также

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