1. 程式人生 > >圖書管理系統之資料庫訪問層設計

圖書管理系統之資料庫訪問層設計

資料庫訪問層就是通過DAO設計模式將在java程式碼裡的操作連結到資料庫的過程,具體涉及到的訪問操作如下所示:

根據需求分析系統功能分為讀者資訊管理模組、圖書資訊管理模組、圖書借閱管理模組、基礎資訊維護模組和使用者管理模組。

4.1 實體層

在實現功能的過程中,需要對資料表進行操作,可以在程式中直接訪問資料庫,但這樣降低了系統的安全性,同時後續維護和擴充套件也不方便。因此可以建立實體類,實現資料庫表的對映,封裝資料庫中的資料,通過對實體類的操作,對映到資料庫表,既提高了系統的安全性,使程式碼簡介,又提高了複用性和可擴充套件性。

根據資料庫表,結合功能設計,設計6個實體類。

Book.java

ISBNtypeidbooknameauthorpublishpubilishdateprinttimeunitpricetypename

BookType.javatypeidtypename

BorrowBook.javareaderidISBNborrowdatereturndatefine

Reader.javareaderidnamesexagedeptphoneregdatlimitmaxborrownumtypetypename

ReaderType.javatypeidtypenamelimitmaxborrownum

Users.javaidnamepasswowrd

4.2 資料訪問層設計

4.2.1讀者資訊管理

完成讀者資訊新增和讀者資訊查詢與修改功能。

1)讀者資訊新增

根據輸入的讀者編號、姓名、類別、性別、年齡、電話、所在部門、註冊日期,完成讀者資訊的錄入。其中要求讀者編號和姓名不能為空,讀者編號長度為8

public static int insertReader(Reader reader){}

2)讀者資訊查詢與修改

使用者登入成功之後,可以查詢全部讀者資訊,也可以分別根據讀者編號、讀者姓名、讀者部門、讀者型別查詢讀者資訊。

public static List<Reader> selectReader(){

..}

public static Reader selectReaderById(String id){..}

public static List<Reader> selectReaderByName(String name){…..}【模糊查詢】

public static List<Reader> selectReaderByType(String type){…..}

public static List<Reader> selectReaderByDept(String dept){…..}

讀者資訊修改根據查詢到的讀者資訊,可以修改各部分。

public static int updateReader(Reader reader){}

4.2.2 圖書資訊管理

完成圖書資訊新增和圖書資訊查詢與修改功能。

1)圖書資訊新增

根據錄入的圖書ISBN、類別、圖書名稱、作者、出版社、出版日期、印刷次數、單價完成圖書資訊新增。

public static int insertBook(Book book){……}

2)圖書資訊查詢與修改

使用者登入成功之後,可以瀏覽所有圖書資訊,也可以根據ISBN、圖書名稱、圖書類別、作者、出版社檢索特定圖書的相關資訊。

public static List<Book> selectBook(){….}

public static Book selectBookByISBN(String ISBN){….}

public static List<Book> selectBookByName(String name){….}【模糊查詢】

public static List<Book> selectBookByType(String type){….}

public static List<Book> selectBookByAuthor(String author){….}

public static List<Book> selectBookByPublish(String Publish){….}

圖書資訊修改根據查詢到的讀者資訊,可以修改各部分。

public static int update(Book book)

4.2.3 圖書借閱管理

包括圖書借閱和圖書歸還功能。

1)圖書借閱

根據使用者輸入的讀者編號,則顯示出該讀者的姓名、類別,及該讀者的借閱情況。然後錄入該讀者的最新借閱的圖書ISBN,顯示出該圖書的相關資訊,確定借閱後,將該借閱資訊錄入(包括讀者編號、圖書ISBN,當前日期即借閱日期)。

public static List<BorrowBook> selectBorrowByReaderId(String readerid){….}//查詢指定編號讀者的借書資訊

public static int borrowBook(String readeridString ISBN, Date borrowdate){…}//圖書借閱,借閱者的編號,圖書編號,借閱日期

2)圖書歸還

圖書歸還功能,輸入讀者的編號,則顯示出該讀者名下已借閱的圖書,選中要歸還的圖書,判斷當前日期即歸還日期與借閱日期的差值是否超過了規定的期限,計算罰金,從而進行圖書的歸還操作,更新借閱資訊表的歸還日期為當前日期。

public static int returnBook(String readeridString ISBNDate returndate) {…}//圖書歸還,還書者的編號,圖書編號,借閱日期

4.2.4 基礎資訊管理

包括圖書類別設定、讀者類別設定及罰金設定。圖書類別設定,可以對圖書的類別進行增加、刪除、修改和查詢;讀者類別設定可以對讀者的類別進行增加、刪除、修改和查詢;罰金設定,可以指定超期一天的罰金標準。

1)圖書類別設定

圖書類別設定包括查詢所有圖書類別資訊,查詢指定型別名的圖書型別資訊,新增圖書型別,修改指定編號的圖書型別資訊,刪除指定型別編號的圖書型別。

public static List<BookType> selectBookType(){…}

public static List<BookType> selectBookType(String type){…}

public static int insertBookType(Integer id, String typename){….}

public static int updateBookType(Integer id, String typename){….}

public static int deleteBookType(Integer id){….}

2)讀者類別設定

讀者類別設定包括查詢所有讀者型別資訊,查詢指定型別名的讀者資訊型別,新增讀者型別,修改指定編號的讀者型別資訊,刪除指定型別編號的讀者型別。

public static List<ReaderType> selectReaderType(){…}

public static List<ReaderType> selectReaderType(String type){…}

public static int insertReaderType(Integer id, String typename, Integer num, Integer limit){….}

public static int updateReaderType(Integer id, String typename, Integer num, Integer limit){….}

public static int deleteReaderType(Integer id){….}

4.2.5 使用者管理

具體包括登陸系統的時候,判斷使用者名稱和密碼是否有效;查詢所有使用者資訊;新增使用者;修改指定編號的使用者的密碼;刪除指定編號的使用者資訊。

public static Users check(Users users){…}

public static List<Users> selectUser(){….}

public static int insertUser(Users users){…}

public static int updateUserPWD(Users users){…} 【根據編號修改密碼】

public static int deleteUser(Integer id){…}