




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目管理培訓(xùn)課件
- 城市污水管網(wǎng)建設(shè)項目數(shù)字化方案(范文參考)
- 2025年垃圾收轉(zhuǎn)裝備項目發(fā)展計劃
- 市政污水管網(wǎng)改造項目資金申請報告(范文模板)
- 健康飲食產(chǎn)業(yè)園項目建議書
- 香港八井加油站維護修復(fù)計劃
- 物業(yè)元旦宣傳的標(biāo)語(320句)
- 2025年跑道磨擦系數(shù)測試設(shè)備合作協(xié)議書
- 西藏拉薩中學(xué)2024-2025學(xué)年高二英語下學(xué)期第七次月考試題含解析
- 物流配送服務(wù)操作指南
- 小學(xué)生中醫(yī)藥文化知識科普傳承中醫(yī)文化弘揚國粹精神課件
- DL∕T 1022-2015 火電機組仿真機技術(shù)規(guī)范
- 初一語文期末試卷及參考答案
- DL-T664-2016帶電設(shè)備紅外診斷應(yīng)用規(guī)范
- 四新四化的心得體會(24篇)
- 道路清障救援作業(yè)服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 個人查擺問題及整改措施總結(jié)(二篇)
- 海南碧凱藥業(yè)有限公司二期外用制劑車間栓劑生產(chǎn)線產(chǎn)能擴建項目 環(huán)評報告
- 【基于SLP方法的餐廳設(shè)施布局優(yōu)化的案例探析13000字(論文)】
- 前列腺癌護理個案查房課件
- 克羅恩病診斷與治療新指南課件
評論
0/150
提交評論