日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
HibernateAnnotations維護(hù)驗(yàn)證邏輯

Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate Annotations,包括介紹HibernateDoclet等方面。

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站制作與策劃設(shè)計(jì),城中網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:城中等地區(qū)。城中做網(wǎng)站價(jià)格咨詢:13518219792

盡管在 Web 應(yīng)用程序中盡可能多的層次中構(gòu)建數(shù)據(jù)驗(yàn)證非常重要,但是這樣做卻非常耗時(shí),以至于很多開發(fā)人員都會(huì)干脆忽略這個(gè)步驟 —— 這可能會(huì)導(dǎo)致今后大量問題的產(chǎn)生。但是隨著***版本的 Java 平臺(tái)中引入了注釋,驗(yàn)證變得簡(jiǎn)單得多了。本文將向您介紹如何使用Hibernate Annotations 的 Validator 組件在 Web 應(yīng)用程序中輕松構(gòu)建并維護(hù)驗(yàn)證邏輯。

有時(shí)會(huì)有一種工具,它可以真正滿足開發(fā)人員和架構(gòu)師的需求。開發(fā)人員在***次下載這種工具當(dāng)天就可以在自己的應(yīng)用程序中開始使用這種工具。理論上來(lái)說,這種工具在開發(fā)人員花費(fèi)大量時(shí)間來(lái)掌握其用法之前就可以從中獲益。架構(gòu)師也很喜歡這種工具,因?yàn)樗梢詫㈤_發(fā)人員導(dǎo)向更高理論層次的實(shí)現(xiàn)。Hibernate Annotations 的 Validator 組件就是一種這樣的工具。

Java SE 5 為 Java 語(yǔ)言提供了很多需要的增強(qiáng)功能,不過其他增強(qiáng)功能可能都不如 注釋 這樣潛力巨大。使用 注釋,我們就終于具有了一個(gè)標(biāo)準(zhǔn)、一級(jí)的元數(shù)據(jù)框架為 Java 類使用。Hibernate 用戶手工編寫 *.hbm.xml 文件已經(jīng)很多年了(或者使用 XDoclet 來(lái)自動(dòng)實(shí)現(xiàn)這個(gè)任務(wù))。如果手工創(chuàng)建了 XML 文件,那就必須對(duì)每個(gè)所需要的持久屬性都更新這兩個(gè)文件(類定義和 XML 映射文檔)。使用 HibernateDoclet 可以簡(jiǎn)化這個(gè)過程,但是這需要我們確認(rèn)自己的 HibernateDoclet 版本支持要使用的 Hibernate 的版本。doclet 信息在運(yùn)行時(shí)也是不可用的,因?yàn)樗痪帉懙搅?Javadoc 風(fēng)格的注釋中了。Hibernate Annotations通過提供一個(gè)標(biāo)準(zhǔn)、簡(jiǎn)明的映射類的方法和所添加的運(yùn)行時(shí)可用性來(lái)對(duì)這些方式進(jìn)行改進(jìn)。

使用 HibernateDoclet 的 Hibernate 映射代碼

 
 
 
  1. /**
  2. * @hibernate.property column="NAME" length="60" not-null="true"
  3. */
  4. public String getName() {
  5. return this.name;
  6. }
  7. /**
  8. * @hibernate.many-to-one column="AGENT_ID" not-null="true" cascade="none" 
  9. *outer-join="false" lazy="true"
  10. */
  11. public Agent getAgent() {
  12. return agent;
  13. }
  14. /**
  15. * @hibernate.set lazy="true" inverse="true" cascade="all" table="DEPARTMENT" 
  16. * @hibernate.collection-one-to-many class="com.triview.model.Department"
  17. * @hibernate.collection-key column="DEPARTMENT_ID" not-null="true"
  18. */
  19. public List getDepartment() {
  20. return department;
  21. }

使用 Hibernate Annotations 的 Hibernate 映射代碼

 
 
 
  1. @NotNull
  2. @Column(name = "name")
  3. @Length(min = 1, max = NAME_LENGTH) 
  4. // NAME_LENGTH is a constant declared elsewhere
  5. public String getName() {
  6. return name;
  7. }
  8. @NotNull
  9. @ManyToOne(cascade = {CascadeType.MERGE }, fetch = FetchType.LAZY)
  10. @JoinColumn(name = "agent_id")
  11. public Agent getAgent() {
  12. return agent;
  13. }
  14. @OneToMany(mappedBy = "customer", fetch = FetchType.LAZY)
  15. public List getDepartment() {
  16. return department;
  17. }

如果使用 HibernateDoclet,那么直到生成 XML 文件或運(yùn)行時(shí)才能捕獲錯(cuò)誤。使用 注釋,在編譯時(shí)就可以檢測(cè)出很多錯(cuò)誤;或者如果在編輯時(shí)使用了很好的 IDE,那么在編輯時(shí)就可以檢測(cè)出部分錯(cuò)誤。在從頭創(chuàng)建應(yīng)用程序時(shí),可以利用 hbm2ddl 工具為自己的數(shù)據(jù)庫(kù)從 hbm.xml 文件中生成 DDL。一些重要的信息 —— 比如name 屬性的***長(zhǎng)度必須是 60 個(gè)字符,或者 DDL 應(yīng)該添加非空約束 —— 都被從 HibernateDoclet 項(xiàng)添加到 DDL 中。當(dāng)使用注釋時(shí),我們可以以類似的方式自動(dòng)生成 DDL。


網(wǎng)頁(yè)題目:HibernateAnnotations維護(hù)驗(yàn)證邏輯
瀏覽路徑:http://www.5511xx.com/article/cohdgid.html