表4-4 3种数据类型之间的对应关系
Hibernate映射类型
|
Java类型
|
标准SQL类型
|
integer
|
java.lang.Integer
|
INTEGER
|
long
|
java.lang.Long
|
BIGINT
|
short
|
java.lang.Short
|
SMALLINT
|
float
|
java.lang.Float
|
FLOAT
|
double
|
java.lang.Double
|
DOUBLE
|
big_decimal
|
java.math.BigDecimal
|
NUMERIC
|
character
|
java.lang.String
|
CHAR(1)
|
string
|
java.lang.String
|
VARCHAR
|
byte
|
byte或java.lang.Byte
|
TINYINT
|
boolean
|
boolean或java.lang.Boolean
|
BIT
|
(续表)
Hibernate映射类型
|
Java类型
|
标准SQL类型
|
yes_no
|
boolean或java.lang.Boolean
|
CHAR(1)('Y'或'N')
|
true_false
|
boolean或java.lang.Boolean
|
CHAR(1)('Y'或'N')
|
date
|
java.util.Date或java.sql.Date
|
DATE
|
time
|
java.util.Date或java.sql.Time
|
TIME
|
timestamp
|
java.util.Date或java.sql.Timestamp
|
TIMESTAMP
|
calendar
|
java.util.Calendar
|
TIMESTAMP
|
calendar_date
|
java.util.Calendar
|
DATE
|
binary
|
byte[]
|
VARBINARY或BLOB
|
text
|
java.lang.String
|
CLOB
|
serializable
|
java.io.Serializable实例
|
VARBINARY或BLOB
|
clob
|
java.sql.Clob
|
CLOB
|
blob
|
java.sql.Blob
|
BLOB
|
class
|
java.lang.Class
|
VARCHAR
|
locale
|
java.util.Locale
|
VARCHAR
|
timezone
|
java.util.TimeZone
|
VARCHAR
|
currency
|
java.util.Currency
|
VARCHAR
|
下面我们用实例演示上述映射数据类型的用法。
假如在MySQL数据库中有一张关系表datamap,如表4-5所示。
表4-5 datamap数据表
字 段 名 称
|
数 据 类 型
|
主 键
|
自 增
|
允 许 为 空
|
描 述
|
ID
|
int(4)
|
是
|
增1
|
|
ID号
|
MYBOOLEAN
|
bit(1)
|
|
|
√
|
逻辑型数据
|
MYINT
|
int(5)
|
|
|
√
|
整型数据
|
MYLONG
|
bigint(11)
|
|
|
√
|
长整型数据
|
MYFLOAT
|
float(8,2)
|
|
|
√
|
单精度浮点型数据
|
MYDOUBLE
|
double(10,2)
|
|
|
√
|
双精度浮点型数据
|
MYDECIMAL
|
decimal(10,2)
|
|
|
√
|
DECIMAL型数据
|
MYSTRING
|
varchar(100)
|
|
|
√
|
字符串数据
|
MYTEXT
|
text
|
|
|
√
|
Text型数据
|
MYDATE
|
date
|
|
|
√
|
Date型数据
|
MYTIME
|
time
|
|
|
√
|
Time型数据
|
MYDATETIME
|
datetime
|
|
|
√
|
Datetime型数据
|
MYTIMESTAMP
|
timestamp
|
|
|
√
|
Timestamp型数据
|
MYBINARY
|
varbinary(10240)
|
|
|
√
|
Binary型数据
|
MYBLOB
|
longblob
|
|
|
√
|
Blob型数据
|