【转载】Hibernate与mysql映射类型对照表
Hibernate映射类型对照表java类型?Hibernate映射类型?SQL类型java.math.BigDecimalbig_decimalnumericbyte[]binaryvarbinary(blob)boolean(java.lang.Boolean)booleanbitbyte(java.lang.Byte)byte?tinyintjava.util.Calendarcalendartimestampjava.sql.Clobclobclobjava.util.Date 或java.sql.Datedatedatedouble(java.lang.Double)doubledoublefloat(java.lang.Float)floatfloatint (java.lang.Integer)integerintegerjava.util.Locallocalvarcharlong(java.lang.Long)longbigintjava.io.Serializable的某个实例serializablevarbinary(或blob)java.lang.Stringstringvarcharjava.lang.Stringtextclobjava.util.Date 或 java.sql.Timestamptimetimestamp
?
从书上把这个表抄下来方便以后查阅.
考虑到? 操作 blob 的字段太复杂 一个变换的技巧是 . 实体类用 byte[] 类型 ,? hibernate 类型用 binary ,数据库还是用 blob .这样 可以简化一些操作.
?
Hibernate的映射类型 hibernate mysql映射类型
?
?
integer 或者 int
int 或者 java.lang.Integer
INTEGER
4 字节
long
long Long
BIGINT
8 字节
short
short Short
SMALLINT
2 字节
byte
byte Byte
TINYINT
1 字节
float
float Float
FLOAT
4 字节
double
double Double
DOUBLE
8 字节
big_decimal
java.math.BigDecimal
NUMERIC
NUMERIC(8,2)8 位
character
char Character String
CHAR(1)
定长字符
string
String
VARCHAR
变长字符串
boolean
boolean Boolean
BIT
布尔类型
yes_no
boolean Boolean
CHAR(1) (Y-N)
布尔类型
true_false
boolean Boolean
CHAR(1) (T-F)
布尔类型
?
2 、 Java 时间和日期类型的 Hibernate 映射
?
映射类型
Java 类型
标准 SQL 类型
描述
date
util.Date 或者 sql.Date
DATE
YYYY-MM-DD
time
Date Time
TIME
HH:MM:SS
timestamp
Date Timestamp
TIMESTAMP
YYYYMMDDHHMMSS
calendar
calendar
TIMESTAMP
YYYYMMDDHHMMSS
calendar_date
calendar
DATE
YYYY-MM-DD
?
3 、 Java 大对象类型的 Hibernate 映射类型
?
映射类型
Java 类型
标准 SQL 类型
MySQL 类型
Oracle 类型
binary
byte[]
VARBINARY( 或 BLOB)
BLOB
BLOB
text
String
CLOB
TEXT
CLOB
serializable
Serializable 接口任意实现类
VARBINARY( 或 BLOB)
BLOB
BLOB
clob
java.sql.Clob
CLOB
TEXT
CLOB
blob
java.sql.Blob
BLOB
BLOB
BLOB
?
在程序中通过 Hibernate 来保存 java.sql.Clob 或者 java.sql.Blob 实例时,必须包含两个步骤:
l 在一个数据库事务中先保存一个空的 Blob 或 Clob 实例。
l 接着锁定这条记录,更新上面保存的 Blob 或 Clob 实例,把二进制数据或文本数据写到 Blob 或 Clob 实例中