【Hibernate】Hibernate的映射关系「建议收藏」

【Hibernate】Hibernate的映射关系「建议收藏」【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实现的关系映射

【Hibernate】Hibernate的映射关系「建议收藏」

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



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105698.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用PreparedStatement执行sql语句

    使用PreparedStatement执行sql语句使用PreparedStatement执行sql语句packagecom.cn.preparedStatement;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importorg.junit.Test;importcom.cn.Util.JdbcUtil;

    2022年6月3日
    56
  • js页面刷新或关闭时弹框消失_js刷新页面如何保留页面内容

    js页面刷新或关闭时弹框消失_js刷新页面如何保留页面内容onbeforeunload事件属性  定义:在即将离开当前页面(刷新或关闭)时执行JavaScript,例如:<script>window.onbeforeunload=function(e){e.returnValue=(“确定离开当前页面吗?”);}</script>  用法:onbeforeunload事件在…

    2022年10月28日
    0
  • 谷歌提示密码外泄_你不要把手机丢了泄露

    谷歌提示密码外泄_你不要把手机丢了泄露前不久,Google正式对外推出了基于Gmail的Google Buzz,以此重新进入了微博客和社交网络服务。Google Buzz可以认为是一个类似微博客的状态更新工具,用户可以在里面分享消息、图片

    2022年10月15日
    0
  • Python表白代码合集:5种表白代码,找不到对象你来找我,这也太秀了叭

    Python表白代码合集:5种表白代码,找不到对象你来找我,这也太秀了叭文章目录一、容我啰嗦两句二、来吧,代码展示1、给女神比个小心心2、无限弹窗式表白3、这货不是表白代码,悄悄送给你们4、520表白墙5、抖音热门表白小软件6、无套路表白三、写在最后一、容我啰嗦两句爬虫看多了,对身体不好,我们来点现实的,学学表白找个女朋友他不香吗,对吧~文章最后教你们怎么打包成exe,如果你懒得搞懂代码怎么回事,直接复制代码打包成exe运行就好了。这样不管你发给别人也好,以后方便直接用也好,都很方便。咱就不整什么鸡皮疙瘩掉一地的情话啥的了,有需要的自行百度。二、来吧,代码展示

    2022年6月2日
    98
  • 八数码问题求解「建议收藏」

    八数码问题求解「建议收藏」(一)问题描述在一个3*3的方棋盘上放置着1,2,3,4,5,6,7,8八个数码,每个数码占一格,且有一个空格。这些数码可以在棋盘上移动,其移动规则是:与空格相邻的数码方格可以移入空格。现在的问题是:对于指定的初始棋局和目标棋局,给出数码的移动序列。该问题称八数码难题或者重排九宫问题。(二)问题分析八数码问题是个典型的状态图搜索问题。搜索方式有两种基本的方式,即树式搜索和线式搜索。搜索策略大体有盲…

    2022年7月26日
    3
  • Redis的数据过期清除策略 与 内存淘汰策略

    Redis的数据过期清除策略 与 内存淘汰策略

    2021年4月10日
    134

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号