【Hibernate】Hibernate的映射关系

    还记得我们在EF映射中学过的ORM 吗?ORM(Object Relational Mapping )就是对象关系映射,它是指面向对象的对象模型和关系型数据库的结构之间的相互转换。当我们操作实体对象的时候,就不需要操作复杂的SQL语句,而是对实体对象的属性和方法进行操作。Hibernate就体现了ORM的思想,将关系数据库中的表映射成对象,开发人员对数据库的操作就可以转化为对对象的操作。

Hibernate映射的基本结构

    Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*.cfg.xml),它们各自的作用如下。

    映射类(*.java):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。

    映射文件(*.hbm.xml):它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。

    数据库配置文件(*.properties/*.cfg.xml):它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。

举个例子:

数据库中有User表,表中有userId和userName两个字段,则对应的User.java文件为:

public class User {

	private String userId;
	
	private String userName;

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}
	
}

在User.hbm.xml文件中配置User对象和User表的映射:

<hibernate-mapping>
	<class name="com.tgb.hibernate.User">
		<!-- 主键 -->
		<id name="userId">
			<generator class="uuid"/>			
		</id>
		<property name="userName" column="user_name"/> 
	</class>	
</hibernate-mapping>

hibernate.cfg.xml文件中链接数据库的信息

<hibernate-configuration>
	<session-factory >
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hinrtnste.connection.password">123456</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<mapping resource="com/tgb/hibernate/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

Hibernate实现的关系映射



    上面的代码就是基本映射的体现,接下来会继续介绍常用的关系映射,敬请期待微笑




评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值