Hibernate课堂笔记

1.java持久化概述

      Java持久化简称(JPA), 即把程序中的临时数据持久保存到数据库中。由于jdbc开发效率低,我们就提出了对象关系映射(ORM)的概率

2.ORM

      通过java持久化提供的API来讲java的实体对象保存到数据库中。

3.Hibernate

      Hibernate的核心就是基于ORM的设计思想,对于Hibernate来说,一个java类就是数据库中的一张表,java类中的一个属性就是表中的一个字段,一个java类的实例就是一条数据

4.Hibernate框架搭建

      a.新建java项目

      b.添加hibernate相关jar到项目lib目录中

      c.新建java实体类和对于的数据库表

      d.创建实体类相关*.hbm.xml映射文件

      e.hibernate的配置文件hibernate.cfg.xml放在src下

      f.测试

5.Hibernate的增删查改

      增save()

      删除delete()

      改 update()

      查询 get(),load()

6.get()和load()的区别

      见案例

7.lazy属性 懒加载/延迟加载

      用到时才加载

lazy="true"

8.Hibernate的对象状态

      1.瞬时状态、临时状态

           只能new出来的对象

           不处于session的缓冲中(session不管理)

           对象在数据库中没有对应的记录

           只要主键在数据库中存在,就说这个对象在数据库中有对应的记录

      2.持久化状态

           1.处于session的管理范围

                 当执行session的方式(save/update/saveOrUpdate/get/load)时,这个对象就会自动转成持久状态

           2.在数据库中有对应的记录

           3.处于游离状态的对象,当对象属性进行更改的时间,提交事物更改会反映到数据中。

      3.游离状态

           1.对象不处于session管理范围,通常指session关闭后的对象状态

           2.对象在数据库中有对应的数据

 

9.hibernate 一级缓存(也叫session缓存)

      当执行session的相关方法时,入save,update,get,load等方法时,对象会自定放入一级缓存中,当session关闭缓存就会消失。

      特点:

  1. 缓存有效范围,只在当前session范围,缓存时间很短,作用范围小
  2. 一级缓存,可以在短时间内多次操作数据库的时候,提升效率,减少对数据库的访问次数
  3. 在提交事物时,hibernate会同步缓存到数据库中,会对比缓存数据和数据库数据是否一致,如果一致不修改数据库,不一致提交到数据库执行update语句。

session.clear();清空缓存

session.evict(user1);清除指定缓存

 

10.实体关系(表与表的关系)

      多对一  学生 对  班级

      一对多  班级   对 学生

双向一对多

      多对多    学生   对 老师

      一对一  用户 对  身份证

 

11.控制反转

      inverse="true" :控制反转,把主导权给另一方 就会失去外键维护的权利

 

posted @ 2018-12-29 11:06  晴清情倾  阅读(136)  评论(0编辑  收藏  举报