欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中Hibernate緩存形式總結(jié)

 更新時間:2021年01月25日 14:34:16   作者:小妮淺淺  
在本篇文章里小編給大家整理的是一篇關(guān)于java中Hibernate緩存形式總結(jié)內(nèi)容,有興趣的朋友們可以參考下。

對于數(shù)據(jù)的訪問來說,肯定是在有緩存的情況下運行快一些。對于Hibernate這種與數(shù)據(jù)庫結(jié)合緊密的框架來說,在調(diào)用數(shù)據(jù)的時候肯定會有緩存的出現(xiàn),其中有三種緩存的形式存在:一級緩存、二級緩存和查詢緩存。下面我們就Hibernate中這三種緩存的類型分別帶來介紹。

1.一級緩存

hibernate的一級緩存是session級別的,所以如果session關(guān)閉后,緩存就沒了,此時就會再次發(fā)sql去查數(shù)據(jù)庫。

/**

* 此時會發(fā)出一條sql,將所有學(xué)生全部查詢出來,并放到session的一級緩存當(dāng)中

* 當(dāng)再次查詢學(xué)生信息時,會首先去緩存中看是否存在,如果不存在,再去數(shù)據(jù)庫中查詢

* 這就是hibernate的一級緩存(session緩存)

*/

List<Student> stus = (List<Student>)session.createQuery("from Student")

.setFirstResult(0).setMaxResults(30).list();

Student stu = (Student)session.load(Student.class, 1);

2.二級緩存

hibernate二級緩存是由第三方提供以插件的形式存在,常用的緩存實現(xiàn)有Ehcache、oscache。

在hibernate.cfg.xml配置文件中配置我們二級緩存的一些屬性

<!-- 開啟二級緩存 -->
    <property name="hibernate.cache.use_second_level_cache">true</property>
    <!-- 二級緩存的提供類 在hibernate4.0版本以后我們都是配置這個屬性來指定二級緩存的提供類-->
    <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
    <!-- 二級緩存配置文件的位置 -->
    <property name="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</property>

3.查詢緩存

hibernate的查詢緩存是主要是針對普通屬性結(jié)果集的緩存, 而對于實體對象的結(jié)果集只緩存id。

在hibernate.cfg.xml配置文件中,開啟查詢緩存

<!-- 是否開啟查詢緩存,true開啟查詢緩存,false關(guān)閉查詢緩存 -->
<property name="cache.use_query_cache">true</property>

到此這篇關(guān)于java中Hibernate緩存形式總結(jié)的文章就介紹到這了,更多相關(guān)java中Hibernate有幾種緩存形式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論