hibernate是乙個全自動的orm框架,hibernate可以自動生成sql語句,自動執行,使得j**a程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫,同時hibernate作為持久層中介軟體,它的具體實現對與上層呼叫是透明的,即上層通過介面來呼叫hibernate的具體實現,所以對於入門級別的討論來說,自然應該先從介面開始了。
在hibernate應用中通過configuration的例項來指定物件-關係對映檔案或通過configuration動態配置hibernate的屬性,然後通過configuration來建立相應的sessionfactory例項。所以configuration主要作用是配置並啟動hibernate。
在hibernate應用中乙個sessionfactory對應乙個資料來源,它是個重量級物件(注意:不可隨意生成多個例項,對於一般的單資料庫應用來說,只需要乙個sessionfactory就足夠了,當然如果有多個資料庫的話,還是需要為每個資料庫生成對應的sessionfactory);它是執行緒安全的,同乙個例項可以被應用中的多個執行緒共享;同時sessionfactory存放了大量預定義的sql語句以及對映元資料,則需要很大的快取了,也需要一定的cpu時間來計算生成。
注:通過mapping檔案的定義,很多sql語句就已經確定了,只需要動態生成一次就可以了,提高持久化的效率。
session介面是hibernate應用中使用最廣泛的介面了,它是持久化管理器,提供新增、更新、刪除、載入、查詢物件。session不是執行緒安全的,所以應避免多個執行緒共享同乙個session例項。session是輕量級物件,它的建立和銷毀不需要太多資源,這意味著在應用中可以經常建立和銷毀session物件。
session有乙個快取,稱之為hibernate的一級快取,它存放當前工作單元載入的持久化物件,每個session都有自己的快取,快取中的物件只能被當前工作單元訪問。
注:session例項是從sessionfactory中可以獲得。
transaction是hibernate的資料庫事務介面,它對底層道德事務介面進行了封裝,底層事務介面包括:
jdbc api
jta(j**a transaction api)
corba(common object requet broker architecture) api
hibernatewww.cppcns.com應用可以通過一致transaction介面來宣告事務邊界,這有助於應用可以在不同的環境或容器中移植。具體的事務www.cppcns.com實現使用在hibernate.proper程式設計客棧ties中進行指定。
這兩個是hibernate的查詢介面,用於向資料庫查詢物件,以及控制執行查詢的過程。query例項包裝了乙個hql(hibernate query langua來查詢。criteria介面完全封裝了基於字串形式的查詢語句,比query更物件導向,criteria更擅長執行動態查詢。
總結1、configuration:配置hibernate,建立sessionfactory物件。
2、sessionfactory:初始化hibernate,充當資料儲存源的**,建立session物件。
3、session:負責儲存,更新,刪除。載入和查詢物件。
4、transaction:管理事務。
5、query和criteria:執行資料庫的查詢。
vuex的5個核心用法
vuex 是乙個專為 vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可 的方式發生變化 可以把多個元件鏈結起來 vuex中5個主要核心 state 相當於單頁面data,用於存放需要元件中共享的資料 gettermutation 相當...
hibernate中的核心類和介面細節總結
一 configuration類 1.讀取hibernate.cfg.xml 3.載入hibernate的驅動,url,使用者名稱,密碼等等 4.管理配置資訊 二 sessionfactory介面 1.快取sql語句和某些資料 稱為session級快取 2.是乙個重量級的類 常駐記憶體,吃記憶體 一...
vuex的5個核心概念三(actions)
4.actions 非同步操作 在某些情況下確實在vuex中需要進行非同步操作,比如網路請求,這個時候就要將方法寫在actions中 actions類似於mutations,但是是用來替代mutations進行非同步操作的 在actions中提交mutation,並且可以包含任何的非同步操作。act...