在Hibernate对象-关系映射文件中,Hibernate采用映射类型来建立Java类型和SQL类型的桥梁。
在xxx.hbm.xml映射文件中,通过<id>或<property>中的type来指定Hibernate映射类型。
例如:
<id name="id" column="ID" type="long">
<!-- 主键生成方式-->
<generator class="increment"/>
</id>
<property name="name" column="NAME" type="string" length="25" not-null="true" access="property"/>
中的type值,就是Hibernate指定的映射类型。
Hibernate映射类型分为两种:内置映射类型和客户化映射类型。
一,内置映射类型
Hibernate映射类型通常采用跟JAVA类型一致的名字映射成SQL标准。
(1)JAVA基本类型的Hibernate映射类型
Hibernate映射类型,JAVA类型,SQL标准类型关系图如下:
(2)JAVA时间和日期类型的Hibernate映射类型
在JAVA中代表时间和日期的类型包括:java.util.Date和java.util.Calender;
在JDBC中,对java.util.Date进行了三个扩展类:java.sql.Date,java.sql.Time,java.sql.Timestamp,这三个类对应的
标准sql类型分别为DATE,TIME,TIMESTAMP;
映射类型对应的标准SQL类型如下图:
(3)JAVA大对象类型的Hibernate映射类型
在JAVA中,java.lang.String提供了长字符串表示。JDBC中提供了java.sql.Clob,java.sql.Blob分别对应标准SQL类型的CLOB,BLOB。
CLOB表示字符串大对象,BLOB表示二进制大对象。
Hibernate映射类型与数据库标准SQL类型之间的对应关系如下:
(4)JDK自带JAVA类型的Hibernate映射类型