国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Hibernate 能夠滿足我們的驗證需求

2019-11-18 14:53:35
字體:
來源:轉載
供稿:網友

2006 年 10 月 10 日

     盡管在 Web 應用程序中盡可能多的層次中構建數據驗證非常重要,但是這樣做卻非常耗時,以至于很多開發人員都會干脆忽略這個步驟 —— 這可能會導致今后大量問題的產生。但是隨著最新版本的 java 平臺中引入了注釋,驗證變得簡單得多了。在本文中,Ted Bergeron 將向您介紹如何使用 Hibernate Annotations 的 Validator 組件在 Web 應用程序中輕松構建并維護驗證邏輯。

    有時會有一種工具,它可以真正滿足開發人員和架構師的需求。開發人員在第一次下載這種工具當天就可以在自己的應用程序中開始使用這種工具。理論上來說,這種工具在開發人員花費大量時間來把握其用法之前就可以從中獲益。架構師也很喜歡這種工具,因為它可以將開發人員導向更高理論層次的實現。Hibernate Annotations 的 Validator 組件就是一種這樣的工具。

Hibernate 能夠滿足我們的驗證需求(圖一)開始之前需要了解的內容

在閱讀本文之前,應該對 Java 平臺版本 5(尤其是注釋)、jsp 2.0(因為本文中創建了一些標簽文件,并在 TLD 中定義了一些函數,它們都是 JSP 2.0 的新特性)和 Hibernate 及 SPRing 框架有一個基本的了解。請注重即使不使用 Hibernate 來實現持久性,也可以在自己的應用程序中使用 Hibernate Validator。

   Java SE 5 為 Java 語言提供了很多需要的增強功能,不過其他增強功能可能都不如 注釋 這樣潛力巨大。使用 注釋,我們就終于具有了一個標準、一級的元數據框架為 Java 類使用。Hibernate 用戶手工編寫 *.hbm.xml 文件已經很多年了(或者使用 XDoclet 來自動實現這個任務)。假如手工創建了 XML 文件,那就必須對每個所需要的持久屬性都更新這兩個文件(類定義和 XML 映射文檔)。使用 HibernateDoclet 可以簡化這個過程(請參看清單 1 給出的例子),但是這需要我們確認自己的 HibernateDoclet 版本支持要使用的 Hibernate 的版本。doclet 信息在運行時也是不可用的,因為它被編寫到了 Javadoc 風格的注釋中了。Hibernate Annotations,如圖 2 所示,通過提供一個標準、簡明的映射類的方法和所添加的運行時可用性來對這些方式進行改進。


清單 1. 使用 HibernateDoclet 的 Hibernate 映射代碼
/** * @hibernate.property column="NAME" length="60" not-null="true" */public String getName() {    return this.name;}/** * @hibernate.many-to-one column="AGENT_ID" not-null="true" cascade="none"  *                        outer-join="false" lazy="true" */public Agent getAgent() {    return agent;}/** * @hibernate.set lazy="true" inverse="true" cascade="all" table="DEPARTMENT"  * @hibernate.collection-one-to-many class="com.triview.model.Department" * @hibernate.collection-key column="DEPARTMENT_ID" not-null="true" */public List<Department> getDepartment() {    return department;}


清單 2. 使用 Hibernate Annotations 的 Hibernate 映射代碼
@NotNull@Column(name = "name")@Length(min = 1, max = NAME_LENGTH) // NAME_LENGTH is a constant declared elsewherepublic String getName() {    return name;}@NotNull@ManyToOne(cascade = {CascadeType.MERGE }, fetch = FetchType.LAZY)@JoinColumn(name = "agent_id")public Agent getAgent() {    return agent;}@OneToMany(mappedBy = "customer", fetch = FetchType.LAZY)public List<Department> getDepartment() {    return department;}

    假如使用 HibernateDoclet,那么直到生成 XML 文件或運行時才能捕捉錯誤。使用 注釋,在編譯時就可以檢測出很多錯誤;或者假如在編輯時使用了很好的 IDE,那么在編輯時就可以檢測出部分錯誤。在從頭創建應用程序時,可以利用 hbm2ddl 工具為自己的數據庫從 hbm.xml 文件中生成 DDL。一些重要的信息 —— 比如name 屬性的最大長度必須是 60 個字符,或者 DDL 應該添加非空約束 —— 都被從 HibernateDoclet 項添加到 DDL 中。當使用注釋時,我們可以以類似的方式自動生成 DDL。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淄博市| 西峡县| 祁门县| 武川县| 翁源县| 汝南县| 民和| 叙永县| 台州市| 玛多县| 饶阳县| 芜湖县| 安新县| 巴彦淖尔市| 太原市| 理塘县| 竹山县| 霍林郭勒市| 渑池县| 灌南县| 台安县| 新源县| 平遥县| 廉江市| 榆中县| 岳西县| 堆龙德庆县| 大荔县| 丽水市| 额济纳旗| 盖州市| 刚察县| 朝阳区| 攀枝花市| 德格县| 汾阳市| 随州市| 金秀| 桦甸市| 安福县| 宜章县|