Hibernate环境+使用

1.先去官网下载所需的源码、示例等。

2.导入(刚开始只需要导入必需的包,lib下require文件夹内的所有包)

3.编写与Bean同名的*.hbm.xml文件(与Bean放在同一个包下)(映射

4.配置hibernate.cfg.xml文件。(配置数据库连接的参数


注:3、4步中的两个文件可以在下载的文件里找到,复制到项目里修改就好。

                                                                                                                                         9-26


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2015-10-9更新~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

映射多对多关联关系:

例如有两个数据表Project和Employee

Project表示项目(id,name)

Employee表示雇员(id,name)

在Project的Bean中除了id和name还有一个employees集合

在Employee的Bean中除了id和name还有一个projects集合


那么在Project.hbm.xml中

应该这样写:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="entity">
        <class name = "Project"  table = "project">
            <id name = "project_id" column = "project_id">
                <generator class = "assigned"/>
            </id>
            <property name = "project_name"  column = "project_name"></property>
            <set name = "employees"  table = "pro_emp" cascade="all">
                    <key column = "rproject_id"></key>
                    <many-to-many class = "Employee" column="remployee_id"></many-to-many>
            </set>
            
        </class>


</hibernate-mapping>

注意<set>标签表示Bean中的一个Set集合的映射。属性name表示集合的名字,table表示关系表的名字。cascade表示级联操作。

            <key>标签表示在project表中通过pro_emp表的外键rproject_id参照employee表。

            <many-to-many> 属性class表示employees的类型为Employee,column表示employee表通过pro_emp表的外键remployee参照project表。


在Employee.hbm.xml中

应该这样写:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="entity">
        <class name = "Employee"  table = "employee">
            <id name = "employee_id" column = "employee_id">
                <generator class = "assigned"/>
            </id>
            <property name = "employee_name"  column = "employee_name"></property>
            <set name = "projects"  table = "pro_emp" inverse="true">
                    <key column = "remployee_id"></key>
                    <many-to-many class = "Project" column="rproject_id"></many-to-many>
            </set>
            
        </class>


</hibernate-mapping>

注意:<set>中的inverse属性表示反转,即projects这个集合属性由Project来维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值