表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型數據
|