1. 如果不存在对应的, 如mysql的mediumint是3字节, 则可以通过
<property name="uid">
<column name="uid" sql-type="mediumint" />
</property>
来指定
2.如果你使用unsigned tinyint的话, 对应java类型为byte, 但是事实上你只能使用0-127的数字
如果由外部程序写入数据库, 写入的值超过127的话, hibernate读取映射的时候将产生exception
|
integer或者int
|
int或者java.lang.Integer
|
INTEGER
|
4字节
|
|
long
|
longLong
|
BIGINT
|
8字节
|
|
short
|
shortShort
|
SMALLINT
|
2字节
|
|
byte
|
byteByte
|
TINYINT
|
1字节
|
|
float
|
floatFloat
|
FLOAT
|
4字节
|
|
double
|
doubleDouble
|
DOUBLE
|
8字节
|
|
big_decimal
|
java.math.BigDecimal
|
NUMERIC
|
NUMERIC(8,2)8位
|
|
character
|
charCharacterString
|
CHAR(1)
|
定长字符
|
|
string
|
String
|
VARCHAR
|
变长字符串
|
|
boolean
|
booleanBoolean
|
BIT
|
布尔类型
|
|
yes_no
|
booleanBoolean
|
CHAR(1) (Y-N)
|
布尔类型
|
|
true_false
|
booleanBoolean
|
CHAR(1) (T-F)
|
布尔类型
|
2、Java时间和日期类型的Hibernate映射
|
映射类型
|
Java类型
|
标准SQL类型
|
描述
|
|
date
|
util.Date或者sql.Date
|
DATE
|
YYYY-MM-DD
|
|
time
|
DateTime
|
TIME
|
HH:MM:SS
|
|
timestamp
|
DateTimestamp
|
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 实例时,必须包含两个步骤:
在一个数据库事务中先保存一个空的 Blob 或 Clob 实例。
接着锁定这条记录,更新上面保存的 Blob 或 Clob 实例,把二进制数据或文本数据写到 Blob 或Clob 实例中
Hibernate类型映射详解
本文详细介绍了Hibernate如何映射各种Java基本类型、时间日期类型及大对象类型到数据库中的过程。包括不同字节长度整数类型的具体映射方式,特别强调了tinyint等特殊类型的注意事项。同时覆盖了Java日期时间类型与标准SQL类型的映射规则,以及二进制和文本大对象类型的处理方法。
441

被折叠的 条评论
为什么被折叠?



