【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • web安全概述_网络安全和web安全

    web安全概述_网络安全和web安全域名什么是域名?域名(DomainName),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。例:www.baidu.comDNS什么是DNS?域名系统(DomainNameSystem,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过2

    2022年9月20日
    0
  • android中ListView的用法[通俗易懂]

    android中ListView的用法[通俗易懂]地址:https://www.cnblogs.com/s-y-j/p/6548032.htmlLisView介绍:(一)、ListView概念:ListView是Android中最重要的组件之

    2022年7月1日
    21
  • 字符串-字典树_求一个字符串的所有子串

    字符串-字典树_求一个字符串的所有子串HDU-1251统计难题POJ-3603PhoneListAcWing-143最大异或对HDU-5536ChipFactory字典树,顾名思义是以树结构来模拟字典。回想我们查字典的过程,比如查找”man”,先翻到字典m部分,再翻第二个字母a和第三个字母n,一共查找3次。查找次数最多是等于个单词的长度。插入查找单词的时间复杂度时O(m)O(m),此外有公共前缀的单词只需存一次公共前缀,节省了空间。

    2022年9月6日
    2
  • The hot zone_Grayzone

    The hot zone_Grayzone关于这个问题,是在使用Activiti的时候遇到的,如下图:具体内容如下:Causedby:org.apache.ibatis.exceptions.PersistenceException: ###Errorgettinganewconnection. Cause:java.sql.SQLException:Theservertimezonevalue’Öйú±ê…

    2022年10月9日
    0
  • s一般怎么称呼自己的m_一般要怎么选合适自己的中频熔炼炉呢?

    s一般怎么称呼自己的m_一般要怎么选合适自己的中频熔炼炉呢?中频熔炼炉全称“中频感应式熔炼炉”,又名中频熔金机,在金属熔炼领域有着广泛的应用,特别是对于首饰铸造加工行业,起着至关重要的地位。市面上的中频熔炼炉那么多要怎么去选择呢?要如何去选择一款安全可靠的设备支持我们的企业的生产不掉链子呢?那就点从下面几个因素开始考虑了。基本我们在挑选设备功率的时候,需要考虑五个因素,1、要根据日常的生产需要去选择相对产品的性能。例如要看加热的体积和相应面积;加热体积大…

    2022年6月23日
    40
  • JavaScript小白教程6JS高级教程

    JavaScript小白教程6JS高级教程JavaScript对象所有事物都是对象JavaScript提供多个内建对象,比如String、Date、Array等等。对象只是带有属性和方法的特殊数据类型。布尔型可以是一个对象。

    2022年8月4日
    3

发表回复

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

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