hibernate略有小成

hibernate不是直接操作数据库表而是操作数据库表中对应的实体类。

对象关系映射概述

        1。持久化对象不是通过外健建立关联关系,而是通过属性

        2。持久化类间关联关系的种类:一对一,多对一(最常见),多对多。

        3。持久化类的关联方向:单向关联和双向关联。

     1。一对多关联单向关联关系

                  1。 日常中常见的一对多:留言和回复、类别和商品、班级和学生等。

                  2、数据库表间的一对多关联关系:通过外健建立两个表的联系。

                  3、hibernate持久化类的一对多关联关系

                       1、持久化类添加关联类的相关属性及get/set方法

                       2、映射文件中建立该属性和数据库表字段的映射关系。

           示例一:为班级和学生类添加一对多关系

                  班级类的代码

private int gid  //班级编号
private String gname  //班级名称
private Set  students=new HashSet();//学生set集合
.......get/set方法

                 映射文件

<Set name="Students">
            <key column=gid"></key>       --students表的外健
            <one-to-many class="包名.类名"/>
        </Set>

 

              测试类可以通过grade类对象.getStudents()得到全部学生信息。也可以通过grade类对象.getStudents().add(stu);添加学生表的信息

       示例二:为学生类和班级类添加多对一单向关联关系

                    学生类代码

private String sname //学生姓名
private String   sex //性别
private int age //年龄
private Grade grade  //班级属性
......get/set方法

                映射文件

<many-to-one name="grade" class="包名.类名">  --属性名
             <column name="gid"></column>  --学生表中的外健关联字段
        </many-to-one>

            可以通过学生对象获得班级信息

    2。一对多双向关联关系:同时建立多对一和一对多单向关联关系就可以形成

    3。配置级联属性:cascade属性   作用是实现级联操作关联对象

           常用属性值和功能描述

属性值 功能
none 不对关联对象进行任何级联操作,为cascade默认值
save-update 保存和更新该对象时,级联更新和保存关联对象
delete 删除该对象时级联删除关联对象
all 所有操作都级联

      4。配置反转属性inverse:作用:将维护关联关系的任务反转,由对方来完成

          常用属性值和功能描述

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。