数据库类型与java数据类型的对应关系


数据库类型与java数据类型的对应关系



1. 从 JDBC 类型映射到 Java 类型

JDBC 类型Java 类型
CHARString
VARCHARString
LONGVARCHARString
NUMERICjava.math.BigDecimal
DECIMALjava.math.BigDecimal
BITboolean
TINYINTbyte
SMALLINTshort
INTEGERint
BIGINTlong
REALfloat
FLOATdouble
DOUBLEdouble
BINARYbyte[]
VARBINARYbyte[]
LONGVARBINARYbyte[]
DATEjava.sql.Date
TIMEjava.sql.Time
TIMESTAMPjava.sql.Timestamp

 2.从 Java 类型映射到 JDBC 类型


Java 类型JDBC 类型
StringVARCHAR 或 LONGVARCHAR
java.math.BigDecimalNUMERIC
booleanBIT
byteTINYINT
shortSMALLINT
intINTEGER
longBIGINT
floatREAL
doubleDOUBLE
byte[]VARBINARY 或 LONGVARBINARY
java.sql.DateDATE
java.sql.TimeTIME
java.sql.TimestampTIMESTAMP


 
String 类型的映射通常是 VARCHAR,但如果所给的值超出了驱动程序对 VARCHAR 值所限定的极限,则将转换为 LONGVARCHAR 类型。对 byte[]VARBINARY 及 LONGVARBINARY 值也一样。

3. 从 JDBC 类型到 Java Object 类型的映射

由于 Java 内置类型(例如 boolean 和 int)不是 Object 的子类型,因此对于 getObject/setObject 方法,从 JDBC 类型到 Java object 类型的映射稍有不同。此种映射如下表所示:

 

JDBC 类型Java Object 类型
CHARString
VARCHARString
LONGVARCHARString
NUMERICjava.math.BigDecimal
DECIMALjava.math.BigDecimal
BITBoolean
TINYINTInteger
SMALLINTInteger
INTEGERInteger
BIGINTLong
REALFloat
FLOATDouble
DOUBLEDouble
BINARYbyte[]
VARBINARYbyte[]
LONGVARBINARYbyte[]
DATEjava.sql.Date
TIMEjava.sql.Time
TIMESTAMPjava.sql.Timestamp

 

4. Java Object 类型映射到 JDBC 类型

Java Object 类型JDBC 类型
StringVARCHAR 或 LONGVARCHAR
java.math.BigDecimalNUMERIC
BooleanBIT
IntegerINTEGER
LongBIGINT
FloatREAL
DoubleDOUBLE
byte[]VARBINARY 或 LONGVARBINARY
java.sql.DateDATE
java.sql.TimeTIME
java.sql.TimestampTIMESTAMP


 
注意,String 的映射通常为 VARCHAR,但如果所给的值超出了驱动程序对 VARCHAR 值所限定的极限值,则将转换为 LONGVARCHAR。对 byte[]VARBINARY 和 LONGVARBINARY 值也一样。

 

5. 由 setObject 所进行的转换

setObject

 

 T
I
N
Y
I
N
T
S
M
A
L
L
I
N
T
I
N
T
E
G
E
R
B
I
G
I
N
T
R
E
A
L
F
L
O
A
T
D
O
U
B
L
E
D
E
C
I
M
A
L
N
U
M
E
R
I
C
B
I
T
C
H
A
R
V
A
R
C
H
A
R
L
O
N
G
V
A
R
C
H
A
R
B
I
N
A
R
Y
V
A
R
B
I
N
A
R
Y
L
O
N
G
V
A
R
B
I
N
A
R
Y
D
A
T
E
T
I
M
E
T
I
M
E
S
T
A
M
P
Stringxxxxxxxxxxxxxxxxxxx
java.math.BigDecimalxxxxxxxxxxxxx      
Booleanxxxxxxxxxxxxx      
Integerxxxxxxxxxxxxx      
Longxxxxxxxxxxxxx      
Floatxxxxxxxxxxxxx      
Doublexxxxxxxxxxxxx      
byte[]             xxx   
java.sql.Date          xxx   x x
java.sql.Time          xxx    x 
java.sql.Time- stamp          xxx   xxx


 
从 Java object 类型到 JDBC 类型的转换。

 

6. 由 ResultSet.getXXX 方法检索的 JDBC 类型

"x" 表示该方法可以检索 JDBC 类型。"X" 表示建议使用该方法来检索该 JDBC 类型。

 

 T
I
N
Y
I
N
T
S
M
A
L
L
I
N
T
I
N
T
E
G
E
R
B
I
G
I
N
T
R
E
A
L
F
L
O
A
T
D
O
U
B
L
E
D
E
C
I
M
A
L
N
U
M
E
R
I
C
B
I
T
C
H
A
R
V
A
R
C
H
A
R
L
O
N
G
V
A
R
C
H
A
R
B
I
N
A
R
Y
V
A
R
B
I
N
A
R
Y
L
O
N
G
V
A
R
B
I
N
A
R
Y
D
A
T
E
T
I
M
E
T
I
M
E
S
T
A
M
P
getByteXxxxxxxxxxxxx      
getShortxXxxxxxxxxxxx      
getIntxxXxxxxxxxxxx      
getLongxxxXxxxxxxxxx      
getFloatxxxxXxxxxxxxx      
getDoublexxxxxXXxxxxxx      
getBigDecimalxxxxxxxXXxxxx      
getBooleanxxxxxxxxxXxxx      
getStringxxxxxxxxxxXXxxxxxxx
getBytes             XXx   
getDate          xxx   X x
getTime          xxx    Xx
getTimestamp          xxx   x X
getAsciiStream          xxXxxx   
getUnicodeStream          xxXxxx   
getBinaryStream             xxX   
getObjectxxxxxxxxxxxxxxxxxxx


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值