1. 程式人生 > >srm開發(基於ssh)(4)

srm開發(基於ssh)(4)

1 input處理內容補充

-在struts2裡面有錯誤處理機制,當上傳檔案超過預設的大小,自動返回結果input

-在struts.xml中配置input的返回結果

<!-- 配置input結果 -->
<result name="input">/jsp/error.jsp</result>

(2)當struts2自動返回input結果,出現錯誤,在配置input的頁面中可以檢視錯誤資訊

-在配置的錯誤頁面中,使用struts2標籤可以檢視錯誤資訊

要求使用struts2標籤庫,新增如下所示:

<s:actionerror/>

 

客戶拜訪管理模組

1 什麼是客戶拜訪

(1)客戶:與公司有業務往來的

-比如傳智播客的客戶 有百度、阿里巴巴、新浪

(2)使用者:可以使用系統的人

2 使用者和客戶關係

(1)使用者和客戶之間是拜訪關係

(2)使用者和客戶是多對多關係

**一個使用者可以拜訪多個客戶,一個客戶可以被多個使用者拜訪

客戶:百度、新浪

使用者:小王、小宋

*小王 可以 拜訪 百度、可以拜訪新浪

*百度可以被小王拜訪,可以被小宋拜訪

(3)多對多建表

-建立第三張表,使用外來鍵維護關係

 

3 之前在hibernate階段學過多對多配置

(1)缺陷:第三張表只有兩個欄位(兩個id值)

 

4 把多對多拆分成兩個一對多實現

(1)使用者、客戶、拜訪

(2)使用者和拜訪是一對多

配置和客戶的關係

public class Visit {
    private Integer vid;
    private String vaddress;//拜訪地址
    private String vcontent;//拜訪內容

第二步 實體類之間互相表示

(1)使用者和拜訪一對多

-在使用者實體類表示所有拜訪記錄,使用set集合

//表示所屬使用者
    private User user;
    
    public User getUser() {
        
return user; } public void setUser(User user) { this.user = user; }

第三步 配置對映關係

(1)一個實體類對應對映檔案,建立三個對映檔案

<class name="cn.itcast.entity.Visit" table="t_visit">
        <id name="vid" column="vid">
            <generator class="native">
            </generator>
        </id>
        <property name="vaddress" column="vaddress"></property>
        <property name="vcontent" column="vcontent"></property>
</class>

(2)使用者和拜訪一對多

-在使用者對映檔案中表示所有拜訪記錄,使用set標籤

(3)客戶和拜訪一對多

-客戶對映檔案表示所有拜訪

<!-- 表示所有拜訪記錄 -->
        <set name="setCustVisit">
            <key column="cvid"></key>
            <one-to-many class="cn.itcast.entity.Visit"/>
        </set>

-在拜訪對映檔案中表示所屬客戶

<!-- 拜訪記錄所屬客戶 -->
        <many-to-one name="customer" class="cn.itcast.entity.Customer" column="cvid"></many-to-one>

第四步 把對映檔案引入到核心配置檔案中

資料庫的建表語句如下所示:

CREATE TABLE `t_visit` (
  `vid` int(11) NOT NULL AUTO_INCREMENT,
  `vaddress` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `vcontent` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `uvid` int(11) DEFAULT NULL,
  `cvid` int(11) DEFAULT NULL,
  PRIMARY KEY (`vid`),
  KEY `FKneag8njjijyk0mt952k3leyiu` (`uvid`),
  KEY `FKfq1vs5t876wufr6l5tctnopps` (`cvid`),
  CONSTRAINT `FKfq1vs5t876wufr6l5tctnopps` FOREIGN KEY (`cvid`) REFERENCES `t_customer` (`cid`),
  CONSTRAINT `FKneag8njjijyk0mt952k3leyiu` FOREIGN KEY (`uvid`) REFERENCES `t_customer` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci