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

废话不多说,直接上手

数据库表emps_tb

depts_tb表


工程结构


所需jar包


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();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值