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

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

在Struts和Hibernate之間搭起橋梁

2019-11-18 11:25:41
字體:
來源:轉載
供稿:網友
摘要

Hibernate和struts是當前市面上幾個最流行的開源的庫之一。它們很有效率,是程序員在開發java企業應用,挑選幾個競爭的庫的首選。雖然它們經常被一起應用,但是Hibernate的設計目標并不是和Struts一起使用,而Struts在Hibernate誕生好多年之前就發布了。為了讓它們在一起工作,仍然有很多挑戰。這篇文章點明了Struts和Hibernate之間的一些鴻溝,尤其關系到面向對象建模方面。文章也描述了如何在兩者間搭起橋梁,給出了一個基于擴展Struts的解決方案。所有的基于Struts和Hibernate構建的Web應用都能從這個通用的擴展中獲益。

在Hibernate in Action(Manning,2004十月)這本書里,作者Christian Bauer和Gavin King揭示了面向對象世界的模型和關系數據模型,兩個世界的范例是不一致的。Hibernate非常成功地在存儲層(persistence Layer)將兩者粘合在一起。但是領域模型(domain model)(也就是Model-View-Controller的model layer)和Html頁面(MVC的View Layer)仍然存在不一致。在這篇文章中,我們將檢查這種不一致,并且探索解決的方案。

范例不一致的再發現

讓我們先看一個經典的parent-child關系例子(看下面的代碼):PRodUCt和category。Category類定義了一個類型為long的標示符id和一個類型為String的屬性name。Product類也有一個類型為long的標示符id和一個類型為Category的屬性category,表示了多對一的關系(也就是說很多product可以屬于一個Category)

/**
* @hibernate.class table="CATEGORY"
*/
public class Category {
   private Long id;

   private String name;

   /**
    * @hibernate.id generator-class="native" column="CATEGORY_ID"
    */
   public Long getId() {
      return id;
   }

   public void setId(Long id) {
      this.id = id;
   }

   /**
    * @hibernate.property column="NAME"
    */
   public String getName() {
      return name;
   }

   public void setName(Long name) {
      this.name = name;
   }
}

/**
* @hibernate.class table="PRODUCT"
*/
public class Product {
   private Long id;
   private Category category;

   /**
    * @hibernate.id generator-class="native" column="PRODUCT_ID"
    */
   public Long getId() {
      return id;
   }

   public void setId(Long id) {
      this.id = id;
   }

   /**
    * @hibernate.many-to-one
    * column="CATEGORY_ID"
    * class="Category"
    * cascade="none"
    * not-null="false"
    */
   public Category getCategory() {
      return category;
   }

   public void setCategory(Category category) {
      this.category = category;
   }
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 班戈县| 灵川县| 秦皇岛市| 长沙市| 无极县| 清水河县| 奉节县| 东光县| 利津县| 隆德县| 河间市| 延长县| 兰西县| 全椒县| 桦川县| 临沭县| 长兴县| 泽州县| 庆阳市| 孝感市| 钦州市| 苏州市| 秦安县| 邹平县| 双江| 固镇县| 德清县| 鄂尔多斯市| 商城县| 怀化市| 凯里市| 高雄市| 九江县| 揭阳市| 峨眉山市| 太谷县| 广丰县| 宁河县| 蚌埠市| 天台县| 车险|