原创 Servlet 中文亂碼問題及解決方案剖析

一、常識瞭解 1.GBK包含GB2312,即如果通過GB2312編碼後可以通過GBK解碼,反之可能不成立; 2.java.nio.charset.Charset.defaultCharset() 獲得平臺默認字符編碼; 3.getByt

原创 Hibernate多對多雙向關聯

以Student和Course爲例,一個學生可以選多門課程,一門課程也可以被多個學生選取; 持久化類Student: package bean; import java.util.Set; public class Student

原创 Hibernate樂觀鎖與悲觀鎖

1、Pessimistic Locking 悲觀鎖: 它指的是對數據被外界修改持保守態度。假定任何時刻存取數據時,都可能有另一個客戶也正在存取同一筆數據,爲了保持數據被操作的一致性,於是對數據採取了數據庫層次的鎖定狀態,依靠數據庫提供的

原创 Hibernate的對象檢索策略

Hibernate的對象檢索策略分爲三種: –立即檢索策略 –延遲檢索策略 –左外連接檢索策略 1.立即檢索策略: 以Customer和Order(兩者爲一對多關聯關係)爲例: List customerLists=session.

原创 Hibernate一對一雙向關聯

一對一映射有兩種方式:主鍵關聯和外鍵關聯。 以User類和IdCard類爲例,用戶和身份證是一對一的雙向關聯關係。 持久化類User: public class User { private Long id; private St

原创 Hibernate檢索對象的方式

Hibernate提供的檢索對象的方式有: •導航對象圖檢索方式 –根據已經加載的對象,導航到其他對象。例如,對於已經加載的Customer對象,調用它的getOrders().iterator()方法就可以導航到所有關聯的Order對象

原创 Hibernate映射Set

Hibernate映射Set,其中Set集合中可以放我們自定義的類,也可以是像String、Long、Date等能夠直接映射到數據庫表字段上的類型,後者相對來說比較簡單。 以Team類爲例: package bean; import

原创 Hibernate緩存簡介及領域對象的三種狀態

1. Session級別的緩存又叫做一級緩存;SessionFactory級別的緩存叫做二級緩存。 2.理解Session的緩存: •當Session的save()方法持久化一個Customer對象時,Customer對象被加入到Ses

原创 Hibernate組件映射

        在Hibernate中,component是某個實體的邏輯組成部分,它與實體的根本區別是沒有oid(對象標識符),component是一個被包含的對象,它作爲值類型被持久化,而非一個實體。 下面舉兩個例子說明其使用和配置:

原创 裝飾者模式(Decorator Pattern)(一):裝飾者模式介紹

一、意圖 裝飾者模式(又稱裝飾模式、包裝(Wrapper)模式):動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。 二、適用性 以下情況使用Decorator模式(摘自《設計模式》): • 在不影響其

原创 Hibernate映射Bag

Bag(結合了List與Set),可以重複且沒有順序的一種集合,是Hibernate提供的。HIbernate使用jdk的List模擬Bag。其配置

原创 裝飾者模式(Decorator Pattern)(二):HeadFirst中咖啡添加調料

一、問題描述 爲星巴茲咖啡連鎖店設計飲料菜單,咖啡可加的調料有豆漿、牛奶、摩卡等。可在咖啡的基礎上加入不同的調料,星巴茲會根據所加的調料收取不同的費用,要注意到,以後可能有新的調料被加入進來供顧客選擇。並且本店現有DarkRoast(深

原创 Hibernate事件系統及監聽器

1.Hibernate事件系統(Event System)及監聽器 •如果需要響應持久層的某些特殊事件,你也可以使用Hibernate的事件框架。 該事件系統可以用來替代攔截器,也可以作爲攔截器的補充來使用。 •基本上,Session接

原创 Hibernate繼承映射與多態查詢

一、繼承映射: 關係數據庫的表之間不存在繼承關係,爲了把域模型的繼承關係映射到數據庫中,Hibernate提供了以下三種對繼承關係映射的方法: 每個子類一張表 一張表存儲繼承體系中所有類的信息(該表由繼承體系中所有類的屬性的並集所映

原创 數據庫事務與隔離級別

1.數據庫事務的概念: •事務是指一組相互依賴的操作行爲,如銀行交易、股票交易或網上購物。事務的成功取決於這些相互依賴的操作行爲是否都能執行成功,只要有一個操作行爲失敗,就意味着整個事務失敗。例如,Tom到銀行辦理轉賬事務,把100元錢