Hibernate-主键生成策略

概要

  • 主键生成策略
  • 持久化
  • 一级缓存
  • 事务管理

主键生成策略

持久化

是什么

将内存中的一个对象持久化到数据库的过程。Hibernate框架是一个持久化的框架

持久化类

Java类+映射文件

编写步骤

  1. 对持久化类提供一个无参的构造方法。因为底层会通过反射创建对象
  2. 对内部私有的字段提供get方法与post方法。
  3. 对象持久化类提供一个ID与数据库当中的主键对应
  4. 持久化类中的属性使用包装类型

持久化划分

  • 瞬时态
  • 持久态
  • 游离态、托管态

瞬时态,刚new出对象时,还没有设置id,还没有被session管理。 持久态,拥有了id调用session方法,把对象给session被session管理 添加到session之后,对象一直处于持久态。游离态,把session关闭(close)。需要注意的是,持久态的对象会自动更新数据库。

一级缓存

是什么

将数据存入到内存当中,使用的时候直接从缓存中获取

一级缓存的特点

  1. 当调用save(),update(),saveOrUpdate() 时如果session缓存没有相应的对象,则会自动从数据库查询相应的信息。
  2. 当调用load(),get() 方法,以及Query 接口的list iterator方法会判断缓存当中是否存在该对象,有则返回,不会查询数据库。
@org.junit.Test
    public void T9(){
        Session session = HibernateUtil.openSession();
        //开启事务
        Transaction transaction = session.beginTransaction();

        Students stu1 = session.get(Students.class, 3);
        System.out.println(stu1);//会自动把数据存放到一级缓存

        Students stu2 = session.get(Students.class, 3);//直接使用上个数据
        System.out.println(stu2);

        System.out.println(stu1 == stu2 );

        //提交
        transaction.commit();
        //释放资源
        session.close();
    }

事务管理

Hibernate设置事务的隔离级别。在核心配置文件hibernate.cfg.xml配置,通过数字来代表不同的隔离级别。


  转载请注明: linis Hibernate-主键生成策略

 上一篇
Django-表单 Django-表单
表单必须指定的东西 目的地 用户将数据发送的目的 方式 发送数据的HTTP方法 Django自带表单类编写表单类 提前导入forms模块 所有的表单类都要继承forms.Form类 每个表单字段都有自己的字段类型比如CharField
2019-04-26
下一篇 
Hibernate-常用API Hibernate-常用API
抽取工具类 //Util import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration
2019-04-23
  目录