快速学习hibernate多对一映射关系

废话不多说,直接上手

数据库表emps_tb

快速学习hibernate多对一映射关系

depts_tb表

快速学习hibernate多对一映射关系

工程结构

快速学习hibernate多对一映射关系

所需jar包

快速学习hibernate多对一映射关系

快速学习hibernate多对一映射关系hibernate.cfg.xml文件

注意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="dialect"> org.hibernate.dialect.MySQLDialect </property>


<property name="connection.password">root</property>


<property name="connection.username">root</property>


<property name="connection.url"> jdbc:mysql://localhost:3306/db2 </property>


<property name="connection.driver_class"> com.mysql.jdbc.Driver </property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping resource="Model/Dept.hbm.xml" />  
<mapping resource="Model/Depts.hbm.xml"/> 
<mapping resource="Model/Emps.hbm.xml"/>
    </session-factory>
</hibernate-configuration>


Depts.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-1-23 16:05:01 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="Model.Depts" table="depts_tb">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="assigned" />
        </id>
        <property name="dept_Name" type="java.lang.String">
            <column name="dept_Name" />
        </property>
        <property name="dept_No" type="java.lang.String">
            <column name="dept_No" />
        </property>
    </class>
</hibernate-mapping>


Emps.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-1-23 16:05:01 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="Model.Emps" table="emps_tb">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="assigned" />
        </id>
        <property name="emp_Name" type="java.lang.String">
            <column name="emp_Name" />
        </property>
        <property name="emp_Age" type="java.lang.String">
            <column name="emp_Age" />
        </property>
        <property name="emp_Sex" type="java.lang.String">
            <column name="emp_Sex" />
        </property>
        <property name="emp_Wage" type="java.lang.String">
            <column name="emp_Wage" />
        </property>
        <property name="emp_Work" type="java.lang.String">
            <column name="emp_Work" />
        </property>
        <many-to-one name="depts" class="Model.Depts" fetch="join">
            <column name="dept_ID" />
        </many-to-one>
    </class>
</hibernate-mapping>


代码测试

@Test
public void Insert() {
SessionFactory sessionFactory = null;
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
Depts depts = new Depts(2, "人事部", "002");//新建一个部门
Emps emps1 = new Emps(5, "yy", "22", "男", "1200", "HR", depts);//新建一个员工
Emps emps2 = new Emps(6, "douyu", "19", "女", "1200", "HR", depts);//新建第二个员工
session.save(depts);//保存部门信息
session.save(emps1);//保存员工信息
session.save(emps2);//保存员工信息
transaction.commit();
session.close();
sessionFactory.close();
}