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 |
注:
定长或变长
所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;有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。而长度可确定的可选用char或nchar。
2. text
text存储可变长度的非 Unicode 数据,最大长度为2^31-1(2,147,483,647)个字符。