Ch12 資料庫專案範例 物件導向系統實務
專案實例:圖書資料管理系統 圖書資料管理系統的架構 圖書資料管理系統的編譯與執行 Java程式說明 2019/2/24
圖書資料管理系統的架構-說明 圖書資料管理系統使用 Access資料庫Books.mdb 使用介面是第11章JInternetFrame類別的多重視窗 JOptionPane類別的訊息對話方塊。 在圖書資料管理系統使用功能表列的指令執行資料庫操作和搜尋,使用者並不需要下達完整的SQL指令,就可以新增、更新、刪除和以書號查詢圖書記錄,搜尋記錄功能可以讓使用者輸入完整的SQL查詢指令,其中每一種功能都擁有獨立的內層視窗,使用者可以同時開啟多個視窗執行不同的圖書資料查詢。 2019/2/24
InternalFrame類別 多重視窗介面InternalFrame類別 建構子InternalFrame(String, boolean, boolean, boolean, boolean) 第1個參數是視窗標題 第2個參數是可調整尺寸 第3個參數是可關閉 第4個參數是可最大化 第5個參數是可縮小 第2,3,4,5參數預設值為false 2019/2/24
圖書資料管理系統的架構-Java程式說明 2019/2/24
圖書資料管理系統的編譯與執行 2019/2/24
Java程式說明-Books.java Books.java Books.java程式是修改自Ch11_5.java的多重視窗應用程式,直接擴充createMenuBar()方法的功能表列,新增功能表指令來開啟不同JInternalFrame類別的內層視窗。 在其中的createInternalFrame()方法可以建立內層視窗,資料庫操作的addFrame和deleteFrame視窗物件都只能建立一次。 2019/2/24
Java程式說明-Books.java 使用if條件檢查內層視窗是否已經建立,如下所示: if (addFrame == null) { // 第一次建立 addFrame = new AddRecord(); jdesktop.add(addFrame); } else if (addFrame.isClosed()) { // 內層視窗被關閉 2019/2/24
Java程式說明-Books.java 如果內層視窗已經建立,因為使用者可能縮小視窗成為圖示,所以使用isIcon()方法檢查是否為圖示顯示,setIcon(false)方法將它設成不是圖示顯示,如下所示: if (iframe.isIcon()) iframe.setIcon(false); 2019/2/24
Java程式說明-JDBC.java JDBC.java JDBC.java就是Ch15_4.java,只是更改類別名稱,內含JDBC驅動程式的載入、建立和關閉ODBC資料庫連結的方法。 2019/2/24
Java程式說明-AddRecord.java AddRecord.java AddRecord.java是繼承JInternalFrame類別的內層視窗類別,在建立好輸入欄位資料的JTextField元件後,直接使用Ch15_5_1.java的SQL指令來新增記錄。 2019/2/24
Java程式說明-AddRecord.java 按鈕的事件處理方法actionPerformed()在新增記錄前會查詢書號,以確認書號是否已經存在,如下所示: String code = id.getText(); String strSQL = "SELECT * FROM Book WHERE BookID='" + code + "'"; rs = JDBC.stmt.executeQuery(strSQL); int count = 0; while ( rs.next() ) // 是否有此記錄 count++; 2019/2/24
Java程式說明-AddRecord.java 新增記錄的出版日期就是今天,這是使用System類別的currentTimeMillis()方法取得的Date日期物件,如下所示: Date pubDate = new Date(System.currentTimeMillis()); 2019/2/24
Java程式說明-DeleteRecord.java DeleteRecord.java DeleteRecord.java是繼承JInternalFrame類別的內層視窗類別,在建立好輸入書號欄位資料的JTextField元件後,使用Ch15_5_3.java的SQL指令刪除記錄,在刪除記錄前會查詢書號,以確認刪除書號存在。 2019/2/24
Java程式說明-SQLQuery.java SQLQuery.java SQLQuery.java就是第15-4-3節的Ch15_4_3.java,只是改成繼承JInternalFrame類別的內層視窗類別。 2019/2/24
Java程式說明-IdQuery.java IdQuery.java idQuery.java和SQLQuery.java相似,只是SQL指令改成書號的萬用字元條件,如下所示: String strSQL; strSQL="SELECT * FROM Book WHERE BookID LIKE '%"+code+"%'"; 2019/2/24