• Hibernate总结2


    1.Hibernate持久化类的编写规则

    持久化就是将内存中的数据永久存储到关系型数据库中,持久化类指一个java 类与数据库建立了映射关系,这个类就叫做持久化类

    持久化类的编写有如下规则

    • 持久化类需要提供一个无参的构造方法
    • 持久化类的属性需要是私有的,对私有属性提供get和set方法
    • 持久化类的属性要尽量使用包装类的类型
    • 持久化类要有一个唯一标识的OID 与表的主键对应
    • 持久化类尽量不要使用final进行修饰

    2.Hibernate主键生成策略

    3.Hibernate的持久化对象的三种状态

    3.1 持久化对象三种状态的概述

    1.瞬时态:瞬时态的实例是由new命令创建、开辟内存空间对象,不存在持久化标识OID,尚未与Hibernate Session关联

    2.持久态:存在持久化标识OID,加到Session缓冲中,并且相关联的Session没有关闭,在数据库中有对应的记录

    3.托管态:存在持久化标识OID,并且仍然与数据库中的数据存在关联,只是失去了与当前Session的关联

    3.2 持久化对象三种状态的转换

    4.hibernate的一级缓存

    hibernate的一级缓存就是Session缓存,Session缓存是一块内存空间,用来存放相互管理的Java对象,Hibernate的一级缓存的作用就是减少数据库的访问次数

    Hibernate的一级缓存特点

    • 当应用程序调用Session接口的save(),update(),saveOrUpdate()时,如果Session缓存中没有相对应的对象,Hibernate就会自动的把从数据库查询到的相应对象的信息加入到一级缓存中
    • 当调用Session接口的load(),get()方法时,以及Query接口的list(),iterator()方法时,会判断缓存中是否存在该对象,有则返回,不会查询数据库,如果缓存中没有要查询的对象,在到数据库中查询相应的对象,并添加到一级缓存中
    • 当Session调用close()方法时,Session缓存会被清空
  • 相关阅读:
    JZOJ 3034. 【NOIP2012模拟10.17】独立集
    JZOJ 3035. 【NOIP2012模拟10.17】铁轨
    JZOJ 1259. 牛棚安排
    数位DP JZOJ 3316. 非回文数字
    JZOJ 3046. 游戏
    JZOJ 3013. 填充棋盘
    debian 安装oracle提供的java8
    java 汉字转拼音 PinYin4j
    debian ssh设置root权限登陆 Permission denied, please try again
    java并发下订单生成策略
  • 原文地址:https://www.cnblogs.com/QQ1171492144/p/10541676.html
Copyright © 2020-2023  润新知