2012年9月26日 星期三

存貨管理系統 - MySQL (Part II)

第二個範例 (Part II)

The following examples had been tested on Mozilla's Firefox and Microsoft's IE. The document is provided as is. You are welcomed to use it for non-commercial purpose.
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu

請勿轉貼
看其他教材

資料庫的安裝與設定

我們在這個範例中使用了非常受歡迎的資料庫管理系統 MySQL。MySQL 的 安裝、MySQL 與中文、資料庫 eric 與其表格 Product、以及利用 JDBC 驅動程式來存取資料庫等步驟,請參考 MySQL Server 簡介,在此不在贅述。

資料庫相關的物件

待辦事項管理 的系統中,我們採用了物件導向的設計方式來設計,其中,與資料庫 存取的部分更是使用了一種常見的設計模式(design pattern) -- DAO (Data Access Object) 物件。如果讀者對於物件導向的程式設計概念 還蠻清楚的,我們強烈建議採用 DAO 的方式來完成本系統。 為了提供不使用 DAO 的方式來設計系統,我們在這個範例中並不會解釋或者 設計 DAO 物件,但是我們建議讀者在看完"待辦事項管理"的設計方式之後, 可以將本範例修改成 DAO 的架構,就當作是練習題也不錯。
在開始設計 ZK 程式來存取資料庫的資料之前,我們需要先為每一個資料庫中 的表格(包含 view)設計一個相對應的類別。在儘可能不說明物件導向程式 設計的概念下,我們所需要設計的類別包含下列概念:
  1. 將類別的名稱設計成表格的名稱,其程式碼如下;在原始碼中,只有 綠色部分需要隨著表格名稱做修改,其他都保持不變。
    public class Product {
    }
    
  2. 將表格中的欄位設計成類別中的資料成員,其程式碼如下;在原始碼中, 只有綠色部分需要隨著表格內的欄位名稱以及其相對應的資料型態做修改, 其他都保持不變。以價格欄位來說,由於在表格中其欄位名稱為 price, 而且其資料型態為浮點數,因此我們將其設計為 double price
    public class Product {
      private int id;
      private String name;
      private double price;
      private int qty;
    }
    
  3. 最後,我們需要為每一個資料成員設計一對 set 和 get 方法;set 方法 是用來更改該資料成員的資料用的;而 get 方法是用來取得該資料成員的資料用的。 以價格欄位來說,其原始碼如下。
      public void setPrice(double p) {
        price = p;
      }
      public double getPrice() {
        return price;
      }
    
Product 的程式碼如下:
public class Product {
  private int id;
  private String name;
  private double price;
  private int qty;

  public Product() {}
  public Product(int i,String n,double p,int q) {
    id = i;
    name = n;
    price = p;
    qty = q;
  }
  public int getQty() {
    return qty;
  }
  public void setQty(int q) {
    qty = q;
  }
  public double getPrice() {
    return price;
  }
  public void setPrice(double p) {
    price = p;
  }
  public int getId() {
    return id;
  }
  public void setId(int i) {
    id = i;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}
請把這個程式碼編譯後,放置到適當的位置。如果你是依照本範例的安裝方式 進行,那麼請把 Product.class 放置到 d:\tomcat\webapps\test\WEB-INF\classes 目錄內。 如果讀者並未將 reloadable 設定為 true,你可能需要重新啟動 tomcat。

Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu





沒有留言:

張貼留言