框架——HIBERATE框架的学习

生词

在set里的inverse(维护)用来设计关系由哪一方维护,inverse=true表示被控方,=false代表主控方

one-to-one里的constraint(约束),默认值为false,值为true时,表明该表ID为外键
gennerator里的class属性foreign(外键),表明其主键是外键
set里的cascade级联属性:save-update,delete,all,none(默认值)

increment,先查询数据库主键最大值出来,然后主键在最大值+1

identity,只要创建过id主键,就存在id,被删除了也存在

OID:

Object Identifier,对象标识符,数据库中的主键,Java对象模型中的等价物

由ORM配置文件中的class元素的id元素的generator子元素来指定OID的生成器

OID一般时整数类型,hibernate允许在持久化类定义OID为short,integer,long类型

ORM:

object relational mapping,对象关系映射,在类中的对象及其变量和数据库表中的数据对象和数据元素之间建立映射联系。

hibernate框架优点:

实现了orm更方便的操作数据库,封装了sql语句代码,更加方便
        <class>
            <id>
                <generator>//子元素用来指定oid的生成器
            <property>
            <one-to-one>和<set>和<many-to-one>
        <set>的使用一般在有set集合的one里面

一对一主键关联:(两个主键相关联,将外键表的主键当成外键)

主键表User.hbm.xml    
        <one-to-one name="person" class="Person"   cascade="all"/>
外键表Person.hbm.xml
        <id name="id" >     

               //class="foreign"为了确保两个对象的主键值是相等的
            <generator class="foreign" >        

                //表明外键对应的主键为user的id
                <param name="property">user</param>     
            </generator>
        </id>

        //在one-to-one里的constraint(约束),默认值为false,值为true时,表明该表ID为外键
        <one-to-one name="user" constrained="true" />
constraint(约束),默认值为false,只在one-to-one的映射中使用,表明id为外键

一对一外键关联:(外键必须设置unique约束)(外键参照主键)

主键表(PERSON)
        <one-to-one name="user" property-ref="person"/>
外键表(USER)
        <many-to-one name="person" column="PERSONID"     cascade="all" unique="true"/>

一对多:(外键参照主键,many参照one)

外键一般放在多方,不然控制台会打印update语句,影响性能

主键表(USER)存在外键表(Order)的引用集合set
        private Set orderSet = new HashSet<Order>();
主键表User.hbm.xml
        <set name="orderSet" cascade="delete">     
            <key column="USERID"/>     
            <one-to-many class="Order" />
         </set>

一对多:双向

外键表Order.hbm.xml

        <many-to-one name="user"(需映射的属性名) column="USERID" class="User"(所关联的类型)/>

多对多:(需要额外的表来放置外键)(没一对多常用)

主键表Student.hbm.xml
    <set name="courseSet" table="STUDENTCOURSE"   inverse="false">    
        <key column="STUDENTID"/>   
        <many-to-many class="Course" column="COURSEID"/>
     </set>

外键表Course.hbm.xml

<set name="studentSet" table="STUDENTCOURSE"  inverse="true">  

  <key column="COURSEID"/>    

<many-to-many class="Student" column="STUDENTID"/> </set>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值