第11章 Hibernate驗證器.ppt_第1頁
第11章 Hibernate驗證器.ppt_第2頁
第11章 Hibernate驗證器.ppt_第3頁
第11章 Hibernate驗證器.ppt_第4頁
第11章 Hibernate驗證器.ppt_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Hibernate ORM 最佳實踐第11章 Hibernate 驗證器,2,回顧,使用注釋定義對象關(guān)系映射 使用Hibernate Annotations建立一個項目 利用注釋進行各種對象關(guān)系映射 利用注釋定義命名查詢,3,目標(biāo),了解Hibernate驗證器框架 使用Hibernate驗證器內(nèi)建約束 Hibernate驗證器國際化資源包 學(xué)會編寫自定義驗證器 對關(guān)聯(lián)對象進行約束驗證,4,創(chuàng)建Hibernate驗證器,下載資源包:,Hibernate驗證器提供在代碼中使用注釋來定義各種約束條件 使用內(nèi)建約束(Hibernate Validator本身定義) 使用自定義約束,5,示例,內(nèi)建約束L

2、ength,檢查字符串長度是否符合范圍,內(nèi)建約束NotNull,檢查值是否非空,6,運行,保存約束沒通過返回的具體信息,產(chǎn)生異常,不滿足約束條件,7,結(jié)果,修改上述程序,將company的屬性設(shè)置不為null,情況怎樣?,8,結(jié)果,修改name的屬性符合約束條件,9,內(nèi)建約束,10,使用自定義約束,實現(xiàn)自己的約束:約束名稱+約束實現(xiàn)類,使用約束描述符,interface定義約束名稱,ValidatorClass(自定義驗證器實現(xiàn)類),如:WebAddress(prefix=“http:/www.”),自定義驗證器實現(xiàn)類必須實現(xiàn)接口: Validator,如果該驗證器用來檢查屬性值,還要實現(xiàn):

3、PropertyConstraint接口,實現(xiàn)方法isValid(),定義滿足約束的條件 initialize()初試化約束屬性,約束名稱,約束屬性,11,示例,自定義標(biāo)記約束,要求Company的屬性url以http:/www.開頭,描述自定義驗證器類,約束目標(biāo)是屬性,且在運行時讀取使用,定義注解WebAddress,包含屬性prefix、message,WebAddress.java,message是用于描述約束違規(guī)的默認字符串, 它是強制要求的。,import static java.lang.annotation.ElementType.FIELD,Target(FIELD),12,自

4、定義驗證器代碼,WebAddressValidator.java,實現(xiàn)接口,注解約束符的屬性初始化WebAddress(prefix=“http:/www.”),約束條件的設(shè)置,13,運行,自定義約束,14,結(jié)果,15,錯誤信息國際化,驗證器能夠根據(jù)不同環(huán)境返回符合國際化錯誤信息,利用java.util.ResourceBundle的子類即 ListResourceBundle或PropertyResourceBundle資源綁定,16,示例,PropertyMperties,PropertyMperties,字符串能否從資源文件中獲取?,17,運行,1

5、8,驗證關(guān)聯(lián)對象,如果在驗證一個對象時,讓驗證器同時也驗證其關(guān)聯(lián)對象的約束,需要使用Valid約束,班級-學(xué)生,19,運行,因為在Tstudent中使用 Valid驗證關(guān)聯(lián)對象,所以 InvalidValue包含Tunit對象 的錯誤信息,20,注冊驗證器事件監(jiān)聽器,Hibernate Validator有兩個內(nèi)建Hibernate事件監(jiān)聽器。當(dāng)一個PreInsertEvent或PreUpdateEvent發(fā)生時,監(jiān)聽器會驗證該實體實例的所有約束,如有違反會 拋出一個異常。 基本上,在Hibernate執(zhí)行任何插入和更新前對象會被檢查。這是激活驗證過程 的最便捷最簡單的方法。當(dāng)遇到約束違規(guī)時,

6、事件會引發(fā)一個運行時異常 InvalidStateException,該異常包含一個描述每個錯誤的InvalidValue數(shù)組。,在配置文件中注冊事件監(jiān)聽器,pre-insert,pre-update,org.hibernate.validator.event.ValidateEventListener,org.hibernate.validator.event.ValidatePreInsertEventListener,org.hibernate.validator.event.ValidatePreUpdateEventListener,21,示例,在hibernate-cfg.xml配置如下:,也可以通過編程方式注冊監(jiān)聽器,使用Configuration類的setListener(事件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論