表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型数据 |