zoukankan      html  css  js  c++  java
  • 2013-7-31hibernate二级缓存

    难得闲

    Fckeditor

    Fckconfig.js大部分配置都在这里面,

    增加字体:
            程序代码:

    FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

    将其修改为:

    FCKConfig.FontNames = '宋体;黑体;幼圆;楷体_GB2312;仿宋_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

    这样还是不行,虽然发现编辑器的字体选项多了已添加的中文字体,但应用到文本上却发现没有任何作用!
    接着下一步 :

    打开editor/css/fck_editorarea.css 文件

    将程序代码:

    font-family: Arial, Verdana, sans-serif;

    修改为:

    font-family: 宋体, 黑体, 幼圆, 楷体, 仿宋, Arial, Verdana, sans-serif;

    注意:一定要“另保存”为 UTF-8编码格式的文档,否则会出现乱码!
     
    字体大小:FCKConfig.FontSizes         = '12px;14px;16px;18px;24px;26px;28px;32px;' ;
    想要什么网上搜就行。
     
    今天研究了一天fck的源代码,没什么收获,基本看不懂,只是猜,

    Hibernate缓存

    ------------------------------------------1级缓存

    1级缓存依赖于session,当session关闭时缓存消失,建立session时打开一个session向1级缓存中保存数据:

          Session中的save、update、saveOrupdate、load、list、iterate、lock这些方法都会将对象放入一级缓存,在一级缓存中不能控制缓存的数量,所以在大批量操作数据时可能造成内存溢出,使用session中的evite(object)、clear()方法可以清除缓存的内容

    从一级缓存中取出数据:session中的个体()、load()方法可以从一级缓存中取数据

    清除一级缓存的数据:

       Session中的evict(Objct obj);//从缓存中清除指定的对象

          Session中的clear();//清除缓存中的所有对象

    --------------------------------二级缓存(属于sessionFactory级别的缓存)

    二级缓存的实现是可插拔可配置的,在hibernate中默认是不使用二级缓存的hibernate内置了对EhCache、OsCache、SwarmCache的支持,并且可以通过实现CacheProvider和Cache接口来加入Hibernate不只是的缓存实现。

    Hibernate 中二级缓存的实现:

    配置hibernate.cfg.xml

    1. 打开二级缓存:<property name=”hibernatecache.use_second_level_cache”>ture</property>(hibernate中默认是打开二级缓存的)
    2. 配置你将要使用的二级缓存:<property name=”hibernate.cache.provider_class”>org.hibernatecache.OSCacheProvider</property>

    配置二级缓存的详细信息:

    1、          将你使用的二级缓存的配置文件copy到classpath目录下,然后更改你需要更改的配置

    Cache.capacity=1000//缓存容量,指示缓存中可以存放多少个对象

    配置将要缓存的类:

                  方式1、在hibernate.cfg.xml中配置

                         <class-cache class="org.hibernate.entity.User" usage="缓存策略"/>

                  方式2、在hbm.xml映射文件中配置缓存

                         <cache usage="缓存策略"/>

           缓存策略包含:

                         1、readonly(只读缓存):这种缓存策略只允许对缓存中的数据进行读取操作,不允许修改缓存中的数据,

    这时性 能最好的缓存策略。

                         2、read-write(读-写缓存):这种缓存策略可以保证缓存中数据的状态与数据库中的状态的一致性

    ,每对数据进行一次更新,都会与数据库进行一次同步。这种缓存策略是使用比较多的缓存并发策略

                         3、nonstrict-read-write(非严格的读/写缓存):这种策略不能保证缓存中数据与数据库中数据一致,

    主要应用于对数据要求不严格的情况。

                         4、transactional(事务缓存):这种缓存策略使用比较少,目前只有JBoss TreeCache支持。

    可以将缓存的操作添加 到事务中,如果事务失败进行回滚,则缓存中的数据和数据库中的数据一同回滚到事务开始之前的状态。      

    打开Hibernate的统计信息:(通常在测试的使用使用)

           在hibernate.cfg.xml中配置:<property name="generate_statistics">true</property>(默认为禁用)

           使用统计信息:Statistics st = sessionFactory.getStatistics();//可以获得hibernate的所有统计信息

           获得二级缓存的统计信息:st.getSecondLevelCacheHitCount();//命中次数

                                st.getSecondLevelCacheMissCount();//失效次数

                                st.getSecondLevelCachePutCount();//放入次数

    向二级缓存存放数据:

           session:save(不支持native主键生成策略)、update()、saveOrUpdate()、list()、iterator()、get()、load()、Query、Criteria都会填充二级缓存

    从二级缓存中取数据:

           session中的iterator()、get()、load()会从二级缓存中取数据,由于Query、Criteria命中率较低,所以hibernate默认关闭,可以通过修改cache.use_query_cache为true打开对查            询的缓存,并调用query.setCacheable(true);配置为可缓存的。

    清除二级缓存:sessionFactory.evict();//清

    饭还没来,饿死了。

  • 相关阅读:
    pg 基础操作
    mybatis+pg常见错误
    mybatis 需要注意事项
    java编程中的Dao,service,controller,View
    java 中的spring基础
    werkzeug(flask)中的local,localstack,localproxy探究
    gevent
    cookie和session
    关于redis数据库的简单思考
    对阻塞,非阻塞,同步,异步的深入理解
  • 原文地址:https://www.cnblogs.com/wangliansong/p/3229279.html
Copyright © 2011-2022 走看看