Java数据类型和SQL Serverl数据类型对应表

 

SQL Server 类型

JDBC 类型 (java.sql.Types)

Java 语言类型

bigint

BIGINT

long

timestamp

binary

BINARY

byte[]

bit

BIT

boolean

char

CHAR

String

decimal

money

smallmoney

DECIMAL

java.math.BigDecimal

float

DOUBLE

double

int

INTEGER

int

image

varbinary(max)

LONGVARBINARY

byte[]

varchar(max)

text

LONGVARCHAR

String

nchar

CHAR

NCHAR (Java SE 6.0)

String

nvarchar

VARCHAR

NVARCHAR (Java SE 6.0)

String

nvarchar(max)

ntext

LONGVARCHAR

LONGNVARCHAR (Java SE 6.0)

String

numeric

NUMERIC

java.math.BigDecimal

real

REAL

float

smallint

SMALLINT

short

datetime

smalldatetime

TIMESTAMP

java.sql.Timestamp

varbinary

udt

VARBINARY

byte[]

varchar

VARCHAR

String

tinyint

TINYINT

short

uniqueidentifier

CHAR

String

xml

LONGVARCHAR

SQLXML (Java SE 6.0)

String

SQLXML

注:

  1. char、nchar、varchar 和 nvarchar 区别

     定长或变长

          所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;有var前缀的,表示是实际存储空间是变长的,比如varchar,nvarchar变长字符数据则不会以空格填充。

          Unicode或非Unicode

          前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。

          char(n)

          长度为 n 个字节的不可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 8,000 之间的数值。存储大小为是 n 个字节。

          nchar(n)

          长度为 n 个字节的不可变长度且 Unicode 的字符数据。n 必须是一个介于 1 4,000 之间的数值。存储大小为是 2n 个字节。

          varchar(n)

          长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

          nvarchar(n)

          包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 4,000 之间字节的存储大小是所输入字符个数的两倍。

          如:上面是一个总结介绍,通过上面的介绍,可以知道。

                char、varchar(4) 可以输入4个字线,也可以输入两个汉字

                nchar、nvarchar(4) 可以输四个汉字,也可以输4个字母,但最多四个

          一般一个中文字符占两个字符,从上面的分析可知,字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar。而长度可确定的可选用charnchar 

      2. text

          text存储可变长度的非 Unicode 数据,最大长度为2^31-1(2,147,483,647)个字符