Hibernate解決的是模型不匹配、阻抗不匹配1、新建javaproject2、添加如下的jar包3、在實體包下創建實體類User4、創建并編寫實體類到數據庫的映射文件并進行配置MyUser.hbm.xml5、在src目錄下創建hibernate.cfg.xml配置文件。
N+1使用iterator時的n+1在一對一懶加載中的n+1監聽器攔截器與事件(監聽)編寫監聽器在hibernate.cfg.xml中增加配置選項使用SQL使用命名sql將命名語句放到class內部測試類。
一對一關聯關系(外鍵關聯)我們做這樣的一個假設,公司分配員工住宿,每人分配一個房間。
Hibernate 概述
映射文件詳解目標學習Hibernate的配置文件(hibernate.cfg.xml)學習Hibernate的映射聲明(*.hbm.xml)Hibernate配置文件Hibernate配置文件主要用于配置數據庫連接和Hibernate運行時所需的各種屬性每個Hibernate配置文件對應一個Configuration對象。
Hibernate實體對象生命周期實體對象三種狀態實體對象的生命周期就是指實體對象由產生到被Gc揮手的一段過程自由狀態不處在session的緩存中,也可以說,不被任何一個session實體關聯在數據庫中設有對應記錄持久狀態位于一個session實例的緩存中,也可以說持久化對象總被一個session實例關聯持久化對象和數據庫中的相關記錄對應session在清理緩存時.
Hibernate理解持久化、ORM理解持久化瞬時狀態:在程序運行的時候,有些程序數據保存在內存中,當程序退出后,這些數據就不復存在了,所以,我們稱這些數據的狀態為瞬時的。持久狀態:在使用一些軟件的時候,有些數據在程序退出后,還以文件等形式保存在硬盤中,那么我們稱這些數據的狀態是持久的。持久化:就是講程序中的數據在瞬時狀態和持久狀態之間轉換的機制。ORM概述對象-關系映射:能在對象和關系型數據庫兩者間進行數據轉換的機制。
在項目中使用Hibernate進行大數據量的性能測試,有一些總結, 1)在處理大數據量時,會有大量的數據緩沖保存在Session的一級緩存中,這緩存大太時會嚴重顯示性能,所以在使用Hibernate處理大數據量的,可以使用session.clear()或者session. Evict(Object)在處理過程中,清除全部的緩存或者清除某個對象。
Hibernate Tools for Eclipse Plugins 的安裝和使用,這段時間事情比較多一直沒有寫博客,現在事情忙完了,公司的書柜里有一堆關于Hibernate、Struts和Spring的書,翻了翻發現書中的內容基本上都過時,我喜歡從官方網站上看資料學習最新的技術,這次是我閱讀了Hibernate Tools的官方Documents后根據自己的實踐總結的。
Eclipse中反向生成hibernate實體類+jpa注釋
Hibernate 3 配置文件參數匯總
Hibernate注釋大全
Hibernate集合映射中,經常會使用到"inverse"和"cascade"這兩個屬性。對于我這樣,Hibernate接觸不深和語文水平夠爛的種種因素,發現這兩個屬性實在是難以理解,無奈只好將這個兩個屬性解釋工作交給了Google和Baidu,查看了許多牛人的解釋,加上自己在Eclipse上的調試,對"inverse"和"cascade"這兩個屬性有了一定的見解。
Hibernate是筆者使用了超過5年的優秀ORM框架,雖然說使用了5年,但筆者并沒有把握說自己真正意義上的精通Hibernate。說道熟悉Hibernate還差不多,因為Hibernate用法和特性只要使用過或許都很簡單,但是要做到發揮Hibernate最大限度的潛力,Hibernate優化,或者說Hibernate性能優化筆者僅僅是初窺門徑而已。這里摘錄一篇牛人對于Hibernate優化的文章,希望對自己以后的使用指引下方向吧。這篇是上一篇的續作,著實是不錯,推薦hibernate用戶,尤其是像我一樣的用戶看看,會有收獲的
數據庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數據的資源。通過將一組相關操作組合為一個要么全部成功要么全部失敗的單元,可以簡化錯誤恢復并使應用程序更加可靠。一個邏輯工作單元要成為事務,必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。
Hibernate悲觀鎖:在數據有加載的時候就給其進行加鎖,直到該鎖被釋放掉,其他用戶才可以進行修改;Hibernate樂觀鎖:在對數據進行修改的時候,對數據才去版本或者時間戳等方式來比較,數據是否一致性來實現加鎖。
Hibernate關系映射
事務并發時可能出現的問題: ※丟失更新:兩個事務A和B讀入同一數據并修改,A事務修改后提交,但B事務仍在執行,B仍然是按照一開始讀到是數據做修改,此時,A的修改就被丟失掉了! ※不可重復讀:事務A讀取數據后,事務B對數據執行更新操作[包括修改數據、增刪記錄],使A再次讀取的數據與第一次讀的不一致! ※讀“臟”數據:【即不正確的數據】事務A修改了某一數據并將其寫回磁盤,事務B讀取同一數據后,A由于某種原因被撤銷,這時A已修改過的數據恢復原值,而B讀到的數據就與數據庫中的數據不一致,則B讀到的數據就是“臟”數據!
配置映射文件詳解目標學習Hibernate的配置文件(hibernate.cfg.xml)學習Hibernate的映射聲明(*.hbm.xml)Hibernate配置文件Hibernate配置文件主要用于配置數據庫連接和Hibernate運行時所需的各種屬性每個Hibernate配置文件對應一個Configuration對象。
在向大家詳細介紹Hibernate Session緩存之前,首先讓大家了解下主配置,然后全面介紹延遲加載。