【JAVA學習】session 清理快取的理解 和 如何 清空快取中的資料
尊重版權:http://blog.sina.com.cn/s/blog_62a151be0100nf28.html
Session執行一些sql語句把記憶體中的物件的狀態同步到資料庫,這個過程被稱為session清理.
在預設情況下,Session會在下面的時間點清理快取。
1 當應用程式呼叫net.sf.hibernate.Transacation的commit()方法的時候,commit()方法先清理快取,然後再向資料庫提交事務。
2 當應用程式呼叫Session的find()或者iterate()時,如果快取中持久化物件的屬性發生了變化,就會先清理快取,以保證查詢結果能反映持久化物件的最新狀態。
3 當應用程式顯示呼叫Session的flush()方法的時候。
注意Session的commit()和flush()方法的區別。flush()方法進行清理快取的操作,執行一系列的SQL語句,但不會提交事務;commit()方法會先呼叫flush()方法,然後提交事務。提交事務意味著對資料庫所做的更新被永久儲存下來。
執行session清理的順序:
1.按照應用程式呼叫session.save()方法的銜後順序,執行所有對實進行插入的insert語句。
2.執行所有對實體進行更新的update語句。
3.執行所有對集合進行刪除的delete語句。
4.執行所有對集合元素進行刪除、更新或者插入的SQL語句。
5.執行所有對集合進行插入的insert語句。
6.按照應用程式呼叫session.delete()方法的先後順序,執行所有對實體進行刪除的delete語句。
Session的setFlushMode()方法用於設定清理快取的時間點。FlushMode類定義了三種不同的清理模式:FlushMode.AUTO、FlushMode.COMMIT和FlushMode.NEVER。
清理快取的模式 |
Session的查詢方法 |
Session的commit()方法 |
Session的flush()方法 |
FlushMode.AUTO | 清理 | 清理 | 清理 |
FlushMode.COMMIT | 不清理 | 清理 | 清理 |
FlushMode.NEVER | 不清理 | 不清理 | 不清理 |
在批量處理大量資料的時候為了避免記憶體溢位,可手動干預一級快取:
Session.evict 將某個物件從一級快取移除;如:getSession().evict(member);
Session.clear 清理該session的所有快取物件。
相關推薦
【JAVA學習】session 清理快取的理解 和 如何 清空快取中的資料
尊重版權:http://blog.sina.com.cn/s/blog_62a151be0100nf28.html Session執行一些sql語句把記憶體中的物件的狀態同步到資料庫,這個過程被稱為session清理. 在預設情況下,Session會在下面的時間點清理
【Java學習】IDEA與SVN關聯和過濾設定
【背景】依然是IDEA相關的配置,因為小編參與Java專案的開發,所以需要IDEA與SVN關聯。【內容】一、SVN的過濾設定: 1、svn客戶端設定:直接貼上一下內容到下圖所示輸入框即可:*.svn *.dll*.pdb*.*.target *.classpath *.
【java學習】spring mvc 公共dao的實現,定義基本的增刪改查
pri 代碼 部分 lec sse encoding del epo repos 接口類: package com.blog.db.dao; import com.blog.util.Pagination; import java.util.Lis
【JAVA學習】02.Tomcat配置
參考 pro 放置 目的 classpath JD 路徑 spa tomcat配置 【步驟】 【說明】 1、為什麽配置PATH? 為了方便調用程序,例如你把一個目錄的路徑加到系統默認環境變量PATH裏,那麽你可以直接在運行裏輸入該目錄下的程序名,就可以直接運
【JAVA學習】java虛擬機內存配置,-Xss256m -Xms512m -Xmx800m -XX:MaxPermSize=512m
程序 導致 可能 tomcat服務 nbsp -xmx tails size log 轉自:https://blog.csdn.net/a503921892/article/details/39048737 配置tomcat服務器內存大小中的Xms、Xmx、PermSize
【JAVA學習】03.MyEclipse安裝與配置Tomcat
-- tomcat-8 安裝 圖標 -s 服務器 director 找到 tomcat7 【提要】 Eclipse一般用於J2SE,MyEclipse用於J2EE; 【步驟】 1、安裝MyEclipse,網上隨便下載就好; 2、破解MyEclipse,待破解...
【JAVA學習】07.建立系統模塊的權限表
英文 使用 TP bubuko 分享 http .com java學習 png 【提要】系統權限要盡量做到可配置,包括用戶、菜單、群組、角色、按鈕等 【步驟】 【註意】 1、因為群組名、角色名、按鈕名、菜單名都有可能修改,所以要使用編碼+名稱,編碼
【Java學習】單例模式
{} on() new 情況下 餓漢模式 syn 效率 存在 情況 單例模式有兩種:餓漢模式和懶漢模式,懶漢模式的特點是延遲加載實例 //餓漢模式class Singleton1{ private static final Singleton1 instance = ne
【Java學習】網絡編程1
概念 發送 兩臺 物理層 說明 網絡編程 數據鏈路層 應用層 p地址 網絡上兩臺主機的交互 ①根據IP找到對方主機 ②數據發送到對方指定的應用程序上,為了表示這些應用程序,引入了端口的概念。 常用端口: wed端口80 MySQL端口3306 有效端口 0~65535 ③定
【Java學習】Java簡介與安裝
Java是一門面向物件程式語言,相對於C語言沒有指標這種讓人難以理解的東西,並且有自己的垃圾回收機制。相對於其他語言,本人感覺Java簡單易學並且功能強大。(當然,python寫起程式碼來更加簡單,不過
【java學習】java知識點總結
1,java歷史 1.1 java基於C++ 1.4 編譯型語言、解釋型語言、指令碼語言 任何語言都必須翻譯成機器語言,計算機才能執行高階語言編寫的程式。 翻譯的方式有兩種:一個是編譯,一個是解釋。 1.4.1 編譯型語言 編譯型語言寫的程式在被執行之前,
【java學習】RTTI與反射機制
類載入器首先檢查這個類的Class物件是否已經載入,如果尚未載入,預設的類載入器會根據類名查詢.class檔案,載入時會驗證是否被破壞或者包含不良程式碼,一旦某個類的Class物件被載入記憶體,它就被用來建立這個類的所有物件 Class.forName("");是取得Class物件的引用的一種方法,是用一個
【Java學習】Scanner類
1.類名稱:java.util.Scanner 2.作用:定義一個輸入流,指明輸入來源。 3.用法: 3.1 從鍵盤輸入。 Scanner input=new Scanner(System.in); int a=input.nextInt();
【Java學習】String類的常用操作
一、概述。 Java的常用字串型別為String,是一種引用型別(注意C++中的string為基本資料型別),準確來說為 java.lang.String。在String類中,存在許多已經寫好的處理字串的操作介面,所以,Java中對字串的操作十分簡單,一般
【Java學習】JFileChooser(檔案選擇器)的使用
一、概述。 javax.swing.JFileChooser()(檔案選擇器)提供了一種檔案選擇機制,一般用於開啟檔案,儲存檔案。 二、常用方法。 構造器: 1. public JFileChooser() : 構造一個JFileChooser物件,預設開啟的資料
【Java學習】使用JColorChooser(顏色選擇器)
一、概述。 java.swing.JColorChooser(顏色選擇器)用於顏色的選擇、編輯等操作。 二、常用方法。 1.public JColorChooser() : 構造器,建立一個預設初始顏色為白色的顏色選擇器。 2.public JColorChooser( Color
【Java學習】運算子提要
一、算術運算子 求餘運算(%)的運算數可以是浮點數,結果也不一定是整數。 二、賦值運算子 賦值語句也有運算結果,其值為賦值運算子右邊的值。 doubel a; System.out.println(a = 3.5); //輸出 3.5 三
【Java學習】基本資料型別及其轉換
一、8種基本資料型別 型別 資料型別 所佔位元組數 預設值 最小值 最大值 整型 byte 1 byte 0 -
【Java學習】for、while、do...while迴圈語句的學習,斐波那契數列例項。
for迴圈: 先判斷再迴圈,適用於迴圈次數已知。 for迴圈語法:for(表示式1;表示式2;表示式3){ 語句; //迴圈體 } 表示式1、3:任意表達式語句或空語句 表示式2:必須為布林型常量、變數或表示式 執行過程: 例項:求1+2+3+…+100的
【Java-3】面向物件程式設計理解
面向物件程式設計核心在於“封裝”,即將同一類事物抽象為類class,類似於關係資料庫中實體型,這個類中元素就如屬性一般去描述這個類,“屬性”不僅包括變數,還包括這個類可能使用的函式,也叫方法,由變數和函式即可構成一個類。同時這個“類”的概念也可以類比於C語言中結構體型別,只不過相比於結構體,“類”中