• Hibernate(六)


    ================================缓存============================
    定义:介于应用程序和永久性数据存储源之间,可以复制数据存储源中的数据。

    工作原理:应用程序在运行时直接读/写缓存,只在某些特定时刻按照缓存中的数据来同步更新数据存储源即可。

    作用:降低直接读写永久性数据存储源的频率;提高运行性能


    分类:
        1.一级缓存
        2.二级缓存
        3.查询缓存
        
    作用范围:
        1.事务范围
        2.进程范围
        3.集群范围
        
    一级缓存:Session缓存
        save()、update()、saveOrUpdate()会将对象加入一级缓存中,如果已存在该对象,就会抛出异常
        load()、get()、(Query)list()、(Query)iterator(),缓存中不存在的对象加进缓存中
        
        作用:
            1.减少访问数据库的频率
            2.保证数据库中的相关记录与缓存中的相应对象保持同步
            
        清理缓存的时间点:
            1.调用事务的commit()方法时,会先清理缓存,在向数据库提交事务
            2.执行一些查询操作,缓存中的持久化对象的属性发生变化
            3.显式调用Session的flush()方法
        
        管理缓存的方法:
            1.evict(Object o):从缓存中清除特定持久化对象
            2.clear():清空缓存中所有的持久化对象

    二级缓存:SeesionFactory外置缓存,(进程或者集群范围内的缓存,可以被所有的Session共享)
        SeesionFactory缓存分为内置缓存和外置缓存。
            内置缓存是hibernate自带,不可拆卸,是只读,用来存放映射元数据和预定义SQL语句
            外置缓存是一个可配置的缓存插件,默认SeesionFactory不会启用这个缓存插件。外置缓存中的数据是数据库数据的复制
            
        可配置的插件
            缓存插件        缓存实现类                                是否支持查询缓存        类型
            EHCache        org.hibernate.cache.EhCacheProvider                是                    进程范围;内存或硬盘
            OSCache        org.hibernate.cache.OSCacheProvider                是                    进程范围;内存或硬盘
            SwarmCache    org.hibernate.cache.SwarmCacheProvider            否                    集群范围
            JBossCache    org.hibernate.cache.TreeCacheProvider            是                    集群范围
        
        配置二级缓存的步骤:
            1.将oscache-2.1.jar包放入项目
            2.将配置文件oscache.properties放入项目根目录下
            3.配置hibernate.xml

    查询缓存:依赖二级缓存
        针对ID查询的缓存,对于条件查询毫无作用
        作用:
            1.提高查询速度
            2.优化查询性能
            
    ================================连接池============================
    配置:
        1.使用hibernate时,默认采用hibernate内建的连接池(性能缺陷)
        2.c3p0连接池(推荐)
        
    c3p0配置:
        1.导入jar包 c3p0-0.9.1.jar
        2.书写配置文件






















  • 相关阅读:
    jquery固定在顶部的导航菜单
    Google LOGO现代舞舞蹈动画
    memcached双主复制搭建工作【转】
    docker下运行的redis cluster中的从节点内存高
    修改jar包中的文件
    最全Linux应急响应技巧 【转】
    python lambda表达式简单用法【转】
    redis集群搭建及启动、停止、重启操作【转】
    shell整数与小数比较,小数之间比较的方法【转】
    Linux文件系统被占用,磁盘使用量与实际不一致【转】
  • 原文地址:https://www.cnblogs.com/ivy-xu/p/5618261.html
Copyright © 2020-2023  润新知