zoukankan      html  css  js  c++  java
  • hibernate一对多关系配置

    一、     表信息

      公司表

    cId

    cName

    cAdress

    Null

    Null

    Null

                表t_company

      员工表 

    sId

    sName

    sAge

    cId

    Null

    Null

    Null

    Nulls

                表t_staff

      公司-员工:一对多关系,一个公司对应多个员工。外键设在多的一方。

     

    二、       实体类

     

    Company

    package dao;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class Company {
        private Integer cId;
        private String cName;
        private String cAdress;
        private Set<Staff> setStaff = new HashSet<Staff>();
        public Integer getcId() {
            return cId;
        }
        public Set<Staff> getSetStaff() {
            return setStaff;
        }
        public void setSetStaff(Set<Staff> setStaff) {
            this.setStaff = setStaff;
        }
        public void setcId(Integer cId) {
            this.cId = cId;
        }
        public String getcName() {
            return cName;
        }
        public void setcName(String cName) {
            this.cName = cName;
        }
        public String getcAdress() {
            return cAdress;
        }
        public void setcAdress(String cAdress) {
            this.cAdress = cAdress;
        }
    }
    View Code

    Staff

    package dao;
    
    public class Staff {
        private Integer sId;
        private String sName;
        private Integer sAge;
        private Company company;
        public Company getCompany() {
            return company;
        }
        public void setCompany(Company company) {
            this.company = company;
        }
        public Integer getsId() {
            return sId;
        }
        public void setsId(Integer sId) {
            this.sId = sId;
        }
        public String getsName() {
            return sName;
        }
        public void setsName(String sName) {
            this.sName = sName;
        }
        public Integer getsAge() {
            return sAge;
        }
        public void setsAge(Integer sAge) {
            this.sAge = sAge;
        }
    }
    View Code

    Hibernate要求使用集合表示多的数据,用Set集合表示

     

    三、       配置文件

    映射配置文件:

    Company.hbm.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     <hibernate-mapping>
         <class name="dao.Company" table="t_company">
         <id name="cId" column="cId"><generator class="native"></generator></id>
         <property name="cName" column="cName"></property>
         <property name="cAdress" column="cAdress"></property>
         <set name="setStaff">
         <key column="cId"></key>
         <one-to-many class="dao.Staff"/>
         </set>
         </class>
     </hibernate-mapping>
    View Code

    Staff.hbml.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
        <class name="dao.Staff" table="t_staff">
        <id name="sId" column="sId"><generator class="native"></generator></id>
        <property name="sName" column="sName"></property>
        <property name="sAge" column="sAge"></property>
        <many-to-one name="company" class="dao.Company" column="cId"></many-to-one>
        </class>
    </hibernate-mapping>
    View Code

    核心配置文件:

    Hibernate.cfg.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <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?useUnicode=true&amp;characterEncoding=utf-8</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password">123</property>
            <property name="hibernate.show_sql">true</property>
            <property name="hibernate.format_sql">true</property>
            <property name="hibernate.hbm2ddl.auto">update</property>
            <mapping resource="dao/Company.hbm.xml"/>
            <mapping resource="dao/Staff.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>
    View Code

    在一对多的一方配置<set>

    在多对一的乙方配置<many-to-one>

  • 相关阅读:
    (15)树莓派系统安装和备份
    (0-0) 树莓派学习资料
    (14)树莓派
    (0-1) 树莓派常用软件及服务
    (13)flask搭建服务器
    (12)树莓派串口通信
    OpenCV 学习笔记(0)两幅图像标定配准
    OpenCV 学习笔记(9)RGB转换成灰度图像的一个常用公式Gray = R*0.299 + G*0.587 + B*0.114
    OpenCV 学习笔记(8)彩色图像RGB通道的分离、合并与显示
    Arduino OV7670 live image over USB to PC
  • 原文地址:https://www.cnblogs.com/lolybj/p/6263761.html
Copyright © 2011-2022 走看看