Hibernateday02学习笔记

1 hibernate:一个操作持久层的框架,ORMapping思想的框架
2.ORMapping 对象关系映射
    类    对应  一张表
    对象  对应  一行数据
    属性  对应  表的列
    id    对应  主键
3.hibernate的开发
   1.搭建hibernate的环境
      导入jar包
       导入运行环境相关的配置文件 src/hibernate.cfg.xml【etc/xx】
          1.于数据库连接的相关参数
         connection.driver_class
         connection.url
         connection.username
         connection.password
          2.自身属性相关的参数
          dialect:方言
          show_sql
          format_sql
          3.注册映射文件
        <mapping resource="xx/xxx/xxxx.hbm.xml"/>
       导入映射文件
         xxx.hbm.xml
          <class name="类全路径" table="对应的表">
       <!--配置主键信息-->
       <id name="属性id" column="列名" type="类当中的类型">
         <generator class="increment"/>
       </id>
       <!--非主键相关的信息-->
       <property name="属性" column="列名" type="xxx"/>
      </class>

     位置随意
   2.使用hibernate的core API 进行开发
     1.通过Configuration读取配置文件获得SesssionFactory[重量级资源]
     2.通过SessionFactory获得Session[用户操作的对象]
        Session提供了一套CRUD方法,依赖于主键
    session.save(Object)
    查询 session.get(obj.class,pk)
        修改和删除 先查询在修改/删除
     3.要通过Session获得Transaction控制事务的对象
        session.getTransaction()
    tx.begin();
    tx.commit();

4.如果有dao层,和Biz层 事务要再Biz层中控制

5.java当中对象不是孤立的,有关系

6.对象与对象的关系分为三大类
    关联关系
    继承关系
    值对象关系

7.关联关系
1:1  人 Person    身份证 IdCard   1一个只有一个身份证号码
        name              number //编号
        age               Expire//有效期
        IdCard            Person
   关系属性:IdCard不是Person的固有属性,只是为了表达与Person的关系
             维护内存中的对象之间的关系
   双向关系:从任意一个对象都能找到另外一个对象[双方都配置了关系属性]
   单向关系:只有一方配置了关系属性
   在表当中约定 t_Person 和 t_IdCard 的一对一关系:主外键关系

1:* 一对多关系
     用户    User    订单  Order   一个用户可以有多个订单,一个订单只对应一个用户
             name          address
         age           price
关系属性: Set<Order>      User

*:* 多对多关系
    学生    Student     课程 Course  一个学生有多门课,一个课程有多个学生
             name              name
关系属性: Set<Course>       Set<Student>

1:1关系在表当中处理的方式采用主外键约束
  1.唯一外键:外键可以重复,在外键的基础上加上一个唯一性约束
   t_person               t_idcard
     t_id                       p_id 外键+唯一性约束
     1                           1
     2                           2
  2.共享主键
   t_person          t_idcard
    t_id (主键)       t_id 作为主键同时是外键
  

共享主键建表:特点关系密度高
  
配置映射文件  

Hibernate在关联对象时重要的思想:传递性持久化
    保存一方是另一方也保存,查询一方的时候另一方也被查询

在数据库对表进行删除获得插入式
  插入数据:先插入父表,在插入子表
  删除数据:先删除子表,在删除父表

cascade 级联:设定操作当前对象时如何操作与该对象关联的对象
  none:默认值,保存,删除,更新对象时,忽略关联对象
  save-update:通过save()或者update(),saveOrUpdate()保存或者更新当前对象时,同时更新
              和保存级联对象
  delete:通过delete()方法删除当前对象时,级联删除关联对象
  all:save-update与delete的集合,如果对当前对象进行lock()或者evict()操作时,级联对     象进行相同的操作
  delete-orphan:删除所有和当前对象解除关联关系的对象
  all-delete-orphan:包含all和delete-orphan的行为

一对一:唯一外键:为外键加上唯一约束
    公司  Company      地址  Address
关系属性  Address            Coompany
  
作业: 学生 和 电脑
  

你可能感兴趣的:(Hibernate)