zoukankan      html  css  js  c++  java
  • 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.书写配置文件






















  • 相关阅读:
    如何实现数据库实体生成工具
    linux samba 与 Windows 共享文件
    CUnit 的使用
    Xml Document与 xml反序列化
    c语言多文件链接
    c 递归获取文件与目录
    gdb输入输出重定向
    C 链表实现
    Log4net多程序集使用独立的配置文件
    Sqlite 学习 编译sqlite静态库,供其他项目调用
  • 原文地址:https://www.cnblogs.com/ivy-xu/p/5618261.html
Copyright © 2011-2022 走看看