生活随笔
收集整理的這篇文章主要介紹了
Struts2一对多配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在多表映射配置時,我們應該遵循以下不步驟:
確定兩張表之間的關系在數據庫中實現兩張表之間的關系建立在實體類中描述出兩個實體類之間的關系在映射配置文件中建立兩個實體和兩張表之間的關系
我們就按照上面的步驟做,我這里有一張聯系人表和一張客戶表,一對多關系,實體類代碼如下:
/*** 客戶的實體類* @author dengg**/
public class Customer {private Long custId;private String custName;private String custSource;private String custIndustry;private String custLevel;private String custAddress;private String custPhone;public Long getCustId() {return custId;}public void setCustId(Long custId) {this.custId = custId;}public String getCustName() {return custName;}public void setCustName(String custName) {this.custName = custName;}public String getCustSource() {return custSource;}public void setCustSource(String custSource) {this.custSource = custSource;}public String getCustIndustry() {return custIndustry;}public void setCustIndustry(String custIndustry) {this.custIndustry = custIndustry;}public String getCustLevel() {return custLevel;}public void setCustLevel(String custLevel) {this.custLevel = custLevel;}public String getCustAddress() {return custAddress;}public void setCustAddress(String custAddress) {this.custAddress = custAddress;}public String getCustPhone() {return custPhone;}public void setCustPhone(String custPhone) {this.custPhone = custPhone;}@Overridepublic String toString() {return "Customer [custId=" + custId + ", custName=" + custName + ", custSource=" + custSource+ ", custIndustry=" + custIndustry + ", custLevel=" + custLevel + ", custAddress=" + custAddress+ ", custPhone=" + custPhone + "]";}public Customer(Long custId, String custName) {super();this.custId = custId;this.custName = custName;}public Customer() {}}
/*** 聯系人的實體類* @author dengg**/
public class LinkMan implements Serializable {private Long lkmId;private String lkmName;private String lkmPhone;private String lkmMobile;private String lkmEmail;private String lkmPosition;private String lkmMemo;public Long getLkmId() {return lkmId;}public void setLkmId(Long lkmId) {this.lkmId = lkmId;}public String getLkmName() {return lkmName;}public void setLkmName(String lkmName) {this.lkmName = lkmName;}public String getLkmPhone() {return lkmPhone;}public void setLkmPhone(String lkmPhone) {this.lkmPhone = lkmPhone;}public String getLkmMobile() {return lkmMobile;}public void setLkmMobile(String lkmMobile) {this.lkmMobile = lkmMobile;}public String getLkmEmail() {return lkmEmail;}public void setLkmEmail(String lkmEmail) {this.lkmEmail = lkmEmail;}public String getLkmPosition() {return lkmPosition;}public void setLkmPosition(String lkmPosition) {this.lkmPosition = lkmPosition;}public String getLkmMemo() {return lkmMemo;}public void setLkmMemo(String lkmMemo) {this.lkmMemo = lkmMemo;}@Overridepublic String toString() {return "LinkMan [lkmId=" + lkmId + ", lkmName=" + lkmName + ", lkmPhone=" + lkmPhone + ", lkmMobile="+ lkmMobile + ", lkmEmail=" + lkmEmail + ", lkmPosition=" + lkmPosition + ", lkmMemo=" + lkmMemo + "]";}}
第二步在數據庫中實現兩張表之間的關系建立,因為我用了hibernate,會自動創建,就不弄了
第三步在實體類中描述出兩個實體類之間的關系:
首先我們在Customer類中配置LinkMan類的關系,一個客戶對應多個聯系人
我們在Customer加入如下代碼:
private Set<LinkMan> likmans = new HashSet<LinkMan>(0);public Set<LinkMan> getLikmans() {return likmans;}public void setLikmans(Set<LinkMan> likmans) {this.likmans = likmans;}
主表應該包含從表實體的集合引用,用set集合來建立關系,再配置set和get方法,就行了。
接著配置LinkMan,加入代碼如下:
private Customer customer;public Customer getCustomer() {return customer;}public void setCustomer(Customer customer) {this.customer = customer;}
第四步在映射配置文件中建立兩個實體和兩張表之間的關系:
我們先打開Customer.hbm.xml文件,里面加入配置如下:
<set name="likmans" table="cust_linkman"><key column="lkm_cust_id"></key><one-to-many class="LinkMan"/></set>
name:就是我們在Customer類中設置set集合的名字
table:指定從表的名字,也就是聯系人表名
key:指定外鍵字段名
one-to-many:指定從表實體名稱
然后打開LinkMan.hbm.xml文件,在里面加入如下代碼:
<many-to-one name="customer" class="Customer" column="lkm_cust_id"></many-to-one>
name:從表實體引用主表實體對象引用的名稱嗎,就是在LinkMan類中設置Customer對象的名稱
class:指定屬性所對應的實體類名稱,就是Customer路徑
column:指定外鍵的名稱
總結
以上是生活随笔為你收集整理的Struts2一对多配置的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。