Hibernate配置详解

 1.引入Hibernate的支持包。
2.写好hibernate.cfg.xml
    里面涉及到的内容有:
 JDBC连接参数
 connection.driver_class、
 connection.username、
 connection.password、
 connection.url、
 dialect、
 show_sql、
 Hibernate C3P0连接池参数
 hibernate.connection.provider_class、
 hibernate.c3p0.max_size、
 hibernate.c3p0.min_size、
 hibernate.c3p0.timeout、
 hibernate.c3p0.max_statements、
 hibernate.c3p0.idle_test_period
 注册ORM映射文件
 <mapping resource=“包名/类名.hbm.xml”>可以有多个。
3.写ORM配置文件(文件名为类名.hbm.xml)
   对应属性的配置(基本的都是name、column、type)
   id的配置(name、column、type、generator)
   一对一映射配置心得
   共享主键配置:从表id生成方式为forergn并且这个节点要包含param节点  配置one-to-one节点 例子
    <id name="id" column="ID" type="integer">
     <generator class="foreign">
      <param name="property"> company</param>
     </generator>
    </id>
    <one-to-one name="company" class="com.ORM.Company" constrained="true"/>
    主表one-to-one节点 例子
    <one-to-one name="login" class="com.ORM.Login" cascade="all" lazy="false"/>
 唯一外键方式配置:主表配置one-to-one节点
                <one-to-one name="client" class="com.ORM.Client" property-ref="address">
     从表配置many-to-one节点
    <many-to-one name="address" class="com.ORM.Address" column="ADDRESS" lazy="false" cascade="all" unique="true"/>
 多对一映射配置
 多对一单向映射:只在“多”的一方配置 类里面有“一”的一方的对象<many-to-one>节点
             <many-to-one name="customer" column="CUSTOMER_ID" class="com.ORM.Customer" lazy="false" not-null="true"/>
 一对多双向映射:双方都要配置。“多”的一方配置同多对一单向映射配置完全相同
     “一”的一方 类里面要有“多”的一方的对象的集合配置set节点
     <set name="orders" cascade="all" inverse="true" lazy="false">
      <key column="CUSTOMER_ID"/>
      <one-to-many class="com.ORM.Order"/>
     </set>
 一对多双向自身关联关系:配置同一对多双向关联,不同的是,主表跟从表都是一个表。配置在一个文件里面就行。
 多对多单向关联:涉及到多对多的都会有连接表,连接表里面存放的是两个表里面关联的字段
     <set name="items" table="selecteditems" lazy="true" cascade="save-update">
      <key column="ORDERID"/>
      <many-to-many class="com.ORM.Items" column="ITEMID"/>
     </set>
 多对多双向关联:在双方都配置,方式同多对多单向映射配置,只是在一方配置上inverse就行。
 
 映射组成关系:讲一个大类分成两个类。配置的时候配置一个组件就行。//客户(client)里面包含地址(address),地址分出来作为一个类。
     <component name="address" class=”com.ORM.Address">
      <parent name="client"/>
      <peoperty name="province" column="PROVINCE" type="string">
      ......
     </component>
 映射继承关系:父类写好,子类继承父类,并扩展自己的属性。映射配置文件只需要写子类的配置就行。
 集合映射:商品有视频广告(VIDEO)、使用技巧(TIPS)、图片(PICTURE)字段,每个字段都有对应的一个表。
    商品类里面的videos属性为set集合,tips为list集合,pictures为map集合。
    配置如下
    <set name="videos" table="videos" lazy="false">
     <key column="ITEMS_ID"/>
     <element column="VIDEO" type="string" not-null="true"/>
    </set>
    <list name="tips" table="tips" lazy="false">
     <key column="ITEMS_ID"/>
     <index column="POSITION"/>
     <element column="TIP" type="string"/>
    </list>
    <map name="pictures" table="pictures" lazy="false">
     <key column="ITEMS_ID">
     <index column="KEYNAME" type="string"/>
     <element column="PICTURE" type="string"/>
    </map>
 
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值