Hibernate O/R映射

O/R映射是ORM框架中最为关键的部分;

 

  • Hibernate基本数据类型,在Hibernate实体属性映射关系定义时,通过这些类型定义,可以完成Java数据类型到数据库特定数据类型的映射关系;

例如:

 

<property name="age" type="integer"></property>

 

 将integer类型的属性age映射到库表字段age;integer是hibernate基本数据之一,Hibernate中提供了丰富的数据类型,其中包括传统类型的java数据类型(String,Integer)及JDBC数据类型,如:Clob,Blob等;Hibernate还支持用户自定义类型;

在HIbernate中,基本数据类型:

Hibernate基本类型

JAVA类型

标准SQL字段类型

Boolean

Boolean,java.lang.boolean

BIT

Yes_no

Boolean,java.lang.boolean

Char(1)(Y/N)

True_false

Boolean,java.lang.boolean

Char(1)(Y/N)

Byte

Byte,java.lang.byte

TINYINT

Short

Short,java.lang.short

SMALLINT

Interger

Int,java.lang.integer

INTEGER

Long

Long,java.lang.long

BIGINT

Float

Float,java.lang.float

FLOAT

Double

Double,java.lang.Double

DOUBLE

Big_decimal

Java.math.BigDecimal

NUMBERIC

Character

Java.lang.string

CHAR(1)

String

Java.lang.string

VARCHAR

Date

Java.util.Date,java.sql.Date

DATE

Time

Java.util.Date,java.sql.Time

TIME

Timestamp

Java.util.Date,java.sql.TimeStamp

TIMESTAMP

Calender

Java.util.Calendar

TIMESTAMP

Calender_date

Java.util.Calendar

Date

Clob

Java.sql.clob

CLOB

Blob

Java.sql.blob

BLOB

Binary

Byte[]

VARBINARY,BLOB

Text

Java.lang.String

CLOB

Seralizable

Java.io.serializable

VARBINARY,BLOB

Class

Java.lang.class

VARCHAR

Local

Java.util.locale

VARCHAR

Timezone

Java.util.timezone

VARCHAR

Currency

Java.util.currency

VARCHAR

 

 

Hibernate基本类型概括了日常开发中所需的觉得大多数情况,提供了传统数据库类型和java数据类型之间的链接纽带;

 

 

  • 实体映射

 

实体映射技术作为类与表之间的联系纽带,对于使用Hibernate而言,映射关系更多的体现在配置文件的维护过程中;

       1.实体映射基础

实体映射的核心内容,即实体类与数据库表之间的映射定义;hibernate中,类映射主要包含3部分内容:

a.表名---类名映射

b.主键映射

c.字段映射

比如我们有TUser这个实体类,数据库里有TUser这个表;就可以通过XML文件对其进行关联,根据习惯,我们将映射文件(XML)的名字和类名保持一致;以.hbm.xml为结尾;如:

 

TUser.java:

 

public class TUser implements java.io.Serializable {
	private Integer tId;
	private String tName;
	private Integer age;
...
}

 TUser.hbm.xml:

 

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
	
<hibernate-mapping package="com.keith.bean"> <!-- 配置文件根节点 -->

	<!-- 类名/表名映射 -->
	<class name="TUser" table="TUser">
		
		<!-- id映射 -->
		<id name="tId">
			<generator class="native"/>
		</id>
		
		<!-- 字段映射 -->
		<property name="tName"></property>
		<property name="age" type="integer"></property>
	</class>
	
</hibernate-mapping>

 详细的字段属性设置,在hibernate文档中很详细;

 

Hibernate中还支持一种与实体无关的映射方式:动态模型(Dynamic Model)!(不知道用的多不多暂不学习!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值