zoukankan      html  css  js  c++  java
  • 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:作用:将维护关联关系的任务反转,由对方来完成

              常用属性值和功能描述:false:为不放弃关联关系维护   true:为放弃关联关系维护

       注意inverse属性只要用于集合属性中,即“一”方反转关联关系维护给“多”方。

  • 相关阅读:
    高盛、沃尔玛 题做出来还挂了的吐槽
    amazon师兄debrief
    到所有人家距离之和最短的中点 296. Best Meeting Point
    问问题没人回答的情况怎么办终于有解了
    找名人 277. Find the Celebrity
    数组生存游戏 289. Game of Life
    547. Number of Provinces 省份数量
    428. Serialize and Deserialize Nary Tree 序列化、反序列化n叉树
    alias别名简介和使用
    面试官:线程池执行过程中遇到异常会发生什么,怎样处理? Vincent
  • 原文地址:https://www.cnblogs.com/hjiongjiong/p/4510126.html
Copyright © 2011-2022 走看看