Hibernate 映射xml中的属性类型
2012-12-25 00:14
417 查看
Hibernate的内置映射类型
1 JAVA基本类型(包括它们的包装类)和Hibernate映射类型
2 JAVA时间和日期类型的Hibernate映射类型
在标准SQL中,DATE表示日期(2005-01-09),TIME表示时间(11:46:54),TIMESTAMP表示时间戳,包含日期和时间信息(20050109114654),如果没有显式插入,由系统自动添加当前系统时间
3 Java大对象类型的Hibernate映射类型
MySQL不支持标准SQL的CLOB类型。
通过Hibernate来保存java.sql.Clob或java.sql.Blob实例时,发须包含两个步骤:
(1) 在一个数据库事务中先保存一个空的Blob或Clob实例
(2) 锁定记录,更新上一步保存的Bolb或Clob实例,把二进制数或长文本写进去,如:
[java] view
plaincopy
Customer customer=new Customer();
customer.setDescription(Hibernate.createClob(“”));//保存一个空的Clob实例
session.save(customer);
session.flush();
session.refresh(customer,LockMode.UPGRADE);//锁定记录
oracle.sql.CLOB clob=(oracle.sql.CLOB)customer.getDescription();
java.io.Writer pw=clob.getCharacterOutputStream();
pw.write(longText);//lognText变量表示长度超过255的字符串
pw.close();
tx.commit();
session.close();
以上不用java.sql.Blob和java.sql.Clob处理JAVA大对有以下两个原因:
(1) Blob和Clob实例只有在一个数据库事务中才有效
(2) 有些数据库的JDBC驱动程序不支持java.sql.Blob或java.sq.Clob。如果在Java应用中处理图片或长文件的二进制数用byte[]比java.sql.Blob方便;如果处理长度超过255的字符串java.lang.String比java.sql.Clob更方法
JDK自带的个别JAVA类的Hibernate映射类型
1 JAVA基本类型(包括它们的包装类)和Hibernate映射类型
Hibernate | Java类型 | 标准SQL类型 | 大小和取值范围 |
integer/int | int/java.lang.Integer | integer | 4字节,-2^31~2^31-1 |
long | long/java.lang.Long | bigint | 8字节, -2^63~2^63-1 |
short | short/java.lang.Short | smallint | 2字节, -2^15~2^15-1 |
byte | byte/java.lang.Byte | tinyint | 1字节, -128~127 |
flat | float/java.lang.Float | float | 4字节, 单精度浮点数 |
double | double/java.lang.Double | double | 8字节, 双精度浮点数 |
big_decimal | java.math.BigDecimal | numeric | 用法:numeric(8,2) |
character | char/…Character/…String | char(1) | 定长字符 |
string | java.lang.String | varchar | 变长字符串 |
boolean | boolean/java.lang.Boolean | bit | 布尔类型 |
yes_no | boolean/java.lang.Boolean | char(1)(‘Y’/’N’) | 布尔类型 |
true_false | boolean/java.lang.Boolean | char(1)(‘T’/’F’) | 布尔类型 |
<property name="author" type="java.lang.String"> <column name="author" length="20" not-null="true" /> </property>
2 JAVA时间和日期类型的Hibernate映射类型
映射类型 | java类型 | 标准SQL类型 | 描述 |
date | java.util.Date/java.sql.Date | date | 日期,形式:yyyy-mm-dd |
time | java.util.Date/java.sql.Time | time | 时间,形式:hh:mm:ss |
timestamp | …Date/java.sql.Timestamp | timestamp | 形式:yyyymmddhhmmss |
calendar | java.util.Calendar | timestamp | 时间和日期,形式同上 |
calendar_date | java.util.Calendar | date | 日期,形式:yyyy-mm-dd |
3 Java大对象类型的Hibernate映射类型
映射类型 | Java类型 | 标准SQL类型 | 描述 |
binary | byte[] | varbinary/blob | 存放二进制数 |
text | java.lang.String | clob | 字符串大对象 |
serializable | 实现java.io.Serializable接口的类 | varbinary/blob | |
clob | java.sql.Clob | clob | 字符串大对象 |
bolb | java.sql.Blob | blob | 二进制大对象 |
通过Hibernate来保存java.sql.Clob或java.sql.Blob实例时,发须包含两个步骤:
(1) 在一个数据库事务中先保存一个空的Blob或Clob实例
(2) 锁定记录,更新上一步保存的Bolb或Clob实例,把二进制数或长文本写进去,如:
[java] view
plaincopy
Customer customer=new Customer();
customer.setDescription(Hibernate.createClob(“”));//保存一个空的Clob实例
session.save(customer);
session.flush();
session.refresh(customer,LockMode.UPGRADE);//锁定记录
oracle.sql.CLOB clob=(oracle.sql.CLOB)customer.getDescription();
java.io.Writer pw=clob.getCharacterOutputStream();
pw.write(longText);//lognText变量表示长度超过255的字符串
pw.close();
tx.commit();
session.close();
以上不用java.sql.Blob和java.sql.Clob处理JAVA大对有以下两个原因:
(1) Blob和Clob实例只有在一个数据库事务中才有效
(2) 有些数据库的JDBC驱动程序不支持java.sql.Blob或java.sq.Clob。如果在Java应用中处理图片或长文件的二进制数用byte[]比java.sql.Blob方便;如果处理长度超过255的字符串java.lang.String比java.sql.Clob更方法
JDK自带的个别JAVA类的Hibernate映射类型
映射类型 | Java类型 | 标准SQL类型 |
class | java.lang.Class | VARCHAR |
locale(现场) | java.util.Locale | VARCHAR |
timezone(地区) | java.util.TimeZone | VARCHAR |
currency(流通) | java.utilCurrency | VARCHAR |
相关文章推荐
- Hibernate 映射xml中的属性类型
- hibernate 4 映射组件属性 自定义类型
- hibernate映射文件 xx.hbm.xml配置映射元素详解--Hibernate映射类型
- Hibernate的映射文件(hbm.xml)属性说明
- hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型
- Hibernate 映射枚举(Enum) 类型的属性
- hibernate.reveng.xml中修改hibernate映射类型timstamp
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
- hibernate.cfg.xml中不用引入属性映射文件的写法
- Hibernate映射组件属性xml形式之方式一
- Hibernate映射集合属性(基本类型)
- Hibernate映射普通属性、Hibernate中的各种类型
- Hibernate映射组件属性xml形式之方式二
- Hibernate--Enum类型的set集合映射到数据库(xml配置文件实现方式)
- 使用Hibernate的XML配置来映射枚举类型,存储自定义类型数据
- 处理Hibernate中Pojo对象String属性不能映射Sqlserver2005 text类型字段问题 .
- Hibernate3.2(8):映射文件Xxx.hbm.xml使用的Hibernate中的数据类型
- Hibernate框架中hibernate.properties属性文件,hibernate.cfg.xml配置文件,以及Users.hbm.xml映射文件的配置
- Hibernate的映射文件(hbm.xml)属性说明
- Hibernate的映射文件(hbm.xml)属性说明