zoukankan      html  css  js  c++  java
  • Hibernate学习(二)持久化类,主键生成策略、一级缓存、事务

    持久化类:

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

    持久化类:java中的一个对象和数据库表建立了映射关系,就可以称为持久化类,java类+映射文件。

    持久化类的3种状态

    1、瞬时态

    这种对象没有标识OID,没有session管理

    2、持久态

    有标识OID,有session管理

    3、托管态

    有标识OID,没有被session管理

    主键的分类


    1、自然主键

    主键本身就是表中一个字段。例如:一个人员表,可以用身份证来做主键,这种称为自然主键。

    2、代理主键

    主键不是表中必须得主键,例如:一个人员表,用uuid来做主键,不用身份证号做主键,用一个和这个表没有关系的字段,这种称为代理主键。

    在实际开发中,尽量使用代理主键

    主键生成策略

    increment:hibernate提供的自动增长机制,适用shot,int,long类型做主键,适合单线程

    identity:适用shot,int,long类型做主键,使用关系型数据库自动增长机制,例如myslq,不适用oracle

    sequence:适用shot,int,long类型做主键,采用序列方式,支持oracle

    uuid:使用字符串主键,hibernate自动生成随机主键

    native:在indentiysequence2种策略直接自行切换

    assigned:hibernat放弃管理主键,需要手动设置主键

    一级缓存


    hibernate提供了一级缓存,二级缓存。

    一级缓存自动配置,二级需要手动配置

    一级缓存是session级别的缓存,和session的声明周期一致。

    一级缓存特殊区域:快照区

    当要提交事务的时候,一级缓存会和快照区对比一下是否一致,如果不一致自动提交数据更新数据,一致的话不会更新数据。

    事务

    指逻辑上的一组操作,组成这个逻辑的单元要么全部成功,要么全部失败

    特性:

    原子性:事务不可再分割

    一致性:事务完成前后,数据保持一致

    隔离性:事务在执行过程中,不应该受到其他事务的干扰

    持久性:事务执行完成后,数据就持久到数据库中。

  • 相关阅读:
    【工具相关】iOS-Reveal的使用
    iOS-策略模式
    iOS-观察者模式
    iOS-工厂模式
    iOS-MVC模式
    iOS-Delegate模式
    iOS----单例模式(Singleton)
    iOS----支付(微信支付、支付宝支付、银联支付控件集成支付)(转)
    详解Linux系统下PXE服务器的部署过程
    配置iptables实现本地端口转发的方法详解
  • 原文地址:https://www.cnblogs.com/wangrongchen/p/11437467.html
Copyright © 2011-2022 走看看