• Hibernate的七种映射关系之基本映射


      说到关系,在这个世界无处不在,我们必须以某个关系的节点存在在这个世界网中。比如父子关系,师生关系,上下属关系甚至是危险关系。数据也是一样的,它的存在必为某其他节点做准备。

      Hibernate有七种映射关联,方向分为单向或双向,主要根据需求分析多和一的关联,分别为:

    1、单向1-1

    2、单向N-1

    3、单向1-N

    4、单向N-N

    5、双向1-N

    6、双向N-N

    7、双向1-1

      在学习这七种映射关联之前,首先要了解基本映射的一些知识和必备条件。
      一、必备实体类,以*.java命名。
        如Student.java文件
     1 public class Student {
     2     private int id;
     3     private String name;
     4     public int getId() {
     5         return id;
     6     }
     7     public void setId(int id) {
     8         this.id = id;
     9     }
    10     public String getName() {
    11         return name;
    12     }
    13     public void setName(String name) {
    14         this.name = name;
    15     }
    16     
    17 }
    
    
    
     
    
    
    
      二、必备配置文件,以*.hbm.xml命名。
      了解hibernate.cfg.xml配置文件:
      1、文档开头引入dtd文件,用来约束xml的命名为其制定了一套标准(提供了一套标签,好吧我承认这种理解有点土)。
      
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    

       2、配置数据库以及映射类的地址映射信息。

     

     1 <hibernate-configuration>
     2     <session-factory>
     3         <!-- 数据库配置 -->
     4         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
     5         <property name="hibernate.connection.url">jdbc:mysql://localhost:3307/hibernate_one2many</property>
     6         <property name="hibernate.connection.username">root</property>
     7         <property name="hibernate.connection.password">123456</property>
     8         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
     9         <property name="hibernate.show_sql">true</property>
    10          
    11         <!-- 映射类的地址映射信息 -->
    12         <mapping resource="com/juyahong/hibernate/Student.hbm.xml"/>
    13         <mapping resource="com/juyahong/hibernate/Classes.hbm.xml"/>
    14     </session-factory>
    15 </hibernate-configuration>
      三、映射文件,以*.hbm.xml命名。
      如:
    Student.hbm.xml
      
    通常我们的实体类可以映射成表,采用<class>标签映射。比如:
    1 <hibernate-mapping package="com.juyahong.hibernate">
    2     <class name="Student" table="t_student">
    3         <id name="id">
    4             <generator class="native"/>
    5         </id>
    6         <property name="name" length="30"/>
    7     </class>
    8 </hibernate-mapping>
      如上面代码可知,实体类中的普通属性即不包括集合、自定义类和数组的属性,映射成了表字段,采用<property>标签映射。需要注意的是实体类的命名或属性不能和数据库的关键字重复,否则会出错,之前做高校平台-基础系统的时候就出现了这个问题。可以通过table="**" 或 column="**"来重命名。

      有了以上的必备条件后,之后的博客就开始以学生管理系统为例分析七种的映射关联。
      
  • 相关阅读:
    nfs共享目录及sersync实时同步
    rsync备份
    MySQL基础操作
    源码包安装MySQL
    二进制安装MySQL
    Centos6防火墙-iptables版
    linux系统mongdb基础(1)
    linux系统ElK基础filebeat收集日志(4)
    linux系统ElK基础(3)
    linux系统ElK基础(2)
  • 原文地址:https://www.cnblogs.com/jyh317/p/3680596.html
Copyright © 2020-2023  润新知