Hibernate中提供了丰富的数据类型支持,其中包括了java数据类型和JDBC数据类型等。除此之外,Hibernate还支持用户自定义的数据类型。本文为了将用户自定义的数据类型与其他的数据类型区分开,将Hibernate内置数据类型称为Hibernate基本数据类型,关于自定义数据类型使用将在下篇文章介绍。
java原始数据类型
映射类型 | Java类型 | SQL字段类型 |
integer | int or java.lang.Integer | integer |
long | long or java.lang.Long | bigint |
short | short or java.lang.Short | smallint |
float | float or java.lang.Float | float |
double | double or java.lang.Double | double |
big_decimal | java.math.BigDecimal | numeric |
character | java.lang.String | char(1) |
string | java.lang.String | varchar |
byte | byte or java.lang.Byte | tinyint |
boolean | boolean or java.lang.Boolean | bit |
yes_no | boolean or java.lang.Boolean | char(1)('Y' or 'N') |
true_false | boolean or java.lang.Boolean | char(1)('Y' or 'N') |
date | java.util.Date or java.sql.Date | date |
time | java.util.Date or java.sql.Time | time |
timestamp | java.util.Date or java.sql.Timestamp | timestamp |
calendar | java.util.Calendar | timestamp |
calendar_date | java.util.Calendar | date |
大数据类型
映射类型 | Java类型 | SQL字段类型 |
---|---|---|
binary | byte[] | varbinary(or blob) |
text | java.lang.String | clob |
serializable | java.io.Serializable任何实例 | varbinary(or blob) |
clob | java.sql.Clob | clob |
blob | java.sql.Blob | blob |
各数据库之间由于实现原理差异,大数据类型的存取方式往往难以通用。
其他数据类型
映射类型 | Java类型 | 标准SQL字段类型 |
---|---|---|
class | java.lang.Class | varchar |
locale | java.util.Locale | varchar |
timezone | java.util.TimeZone | varchar |
currency | java.util.Currency | varchar |
Hibernate基本数据类型覆盖了日常开发使用的绝大多数情况,对于这些基础数据类型,不需要特意的花费时间掌握。需要注意的是,像timestamp这种数据类型对应了多种映射数据类型,使用时需要根据情况选择最合适的映射策略。
加我QQ:981656164,共同学习交流,记得备注 —— OSC! ~~ <( ̄3 ̄)>