基於Java和MySQL的圖書管理系統

Java圖書管理系統

設計人:wangyunpeng_bio

項目需求

隨着計算機的普及和應用水平的提高,經過考察比較,決定利用自己的Java知識開發小型的圖書管理系統,方便圖書的管理。
圖書管理系統是典型的信息管理系統。本次作業利用JAVA開發工具Eclipse和MySQL數據庫來開發這個圖書管理系統。該系統要解決的圖書管理所要解決的問題,可以滿足圖書管理基本要求,包括添加、管理等功能。該系統能根據用戶的需求,快捷方便的爲讀者提供借閱服務
圖書管理系統應有以下功能:

  1. 讀者庫管理
  2. 書庫管理
  3. 借閱管理
  4. 讀者信息查詢

圖書管理系統主要針對書庫的操作功能、所以系統應儘量滿足需求、同時亦不可有多餘或繁複的功能、令系統的操作和功能混亂。

項目地址

本項目地址:https://github.com/wangyunpengbio/Library/
免費下載方法:點那個“Clone or download”,再點“Download ZIP”就行了,感興趣的話,大家可以點個Star
如果實在太初學者,不會下載的話,就在csdn上下載吧https://download.csdn.net/download/qq_29300341/9667678

需求分析

A.業務流程:

No. 業務流程 需求
1. 圖書管理員登入系統 圖書管理員需使用賬號和密碼登入。
2. 新增讀者資料 新增讀者資料,如姓名、性別、職位等。
3. 新增書籍資料 新增書籍資料,如書名、價格、種類等。
4. 讀者庫管理 選中讀者庫裏的讀者信息,即可更新和刪除。
5. 書庫管理 可以按“書編號查詢”和“書名模糊查詢”,繼而選中書籍信息,即可更新和刪除書籍分爲在庫和借出
6 借閱管理 輸入讀者編號,即可檢閱讀者的數據和借閱的圖書,檢閱顧客的數據和購買紀錄。
7. 讀者登入系統 讀者需使用賬號和密碼登入。
8 借書 按書名模糊搜索,選中即可借閱圖書
9 還書 檢閱自己的讀者信息以及已經借閱的圖書,點擊歸還即可,不允許更改或刪除讀者數據,只允許查詢,更改和刪除功能由管理員負責。

以下是使用 實體聯繫模型-Entity Relationship來分析。

B.歸納實體和屬性

No. 業務流程 對應的實體 實體的屬性值
1. 圖書管理員登入系統 Librarian nameUser password
2. 新增讀者資料 Reader idReader nameReader kind sex password
3. 新增書籍資料 Book Author Publisher idBook,nameBook,price,kind,author,publisher Author.name, Author.workplace Publisher.name, Publisher.address
4. 讀者庫管理 Reader idReader nameReader kind sex password
5. 書庫管理 Book idBook nameBook price kind autor publisher
6. 借閱管理 Borrow idReader idBook lendDate dueDate overtime
7. 讀者登入系統 Reader idReader password
8 借書 Borrow idReader idBook lendDate dueDate overtime
9 還書 Borrow idReader idBook lendDate dueDate overtime

C.實體的模型

在這裏插入圖片描述

D.ER-實體關係

Author,Publisher To Book&Borrow&Reader To Librarian
在這裏插入圖片描述

設計

項目文件夾中,(代碼總計:4800+行)
doc文件夾存放着生成的文檔註釋,可點擊其中的index文件查看整個項目的註釋

Src包下面含有五個包

  • Database用於存儲數據庫連接操作
  • Frame用於存儲各個窗體界面
  • Model用於存儲各個實體(表)對應的數據模型
  • Out_of_date用於存儲初始時候寫的界面,後來捨棄,不再調用。
  • SqlTools用於存儲操作數據庫的增刪改查方法

image文件夾用於存放相關的界面圖片,按鈕圖片
備註:程序不同界面的入口已經全部註釋掉了,MainFrame是程序的唯一入口

程序細節設計:

  1. 登陸界面的密碼回顯,伴有跳轉動畫(此處利用了多線程,控制線程存活時間)
  2. 表格直接選中即可修改數據,更新數據時候默認有原始數據,可按不同方式搜索圖書;
  3. 新增借閱信息時候,自動加入當前時間,並計算歸還時間。(SQL函數NOW())
  4. 界面按鈕,背景用Photoshop的重新設計,圖形用戶界面友好;
  5. 數據庫設計達到第三範式,去除了所有非主屬性對任何候選關鍵字的傳遞信依賴,冗餘度低。
  6. 變量和方法命名符合規範,可讀性強
  7. 不同的Model實體(表)對應不同的SqlTools操作,分開存放,程序複用性好,易擴展。
    使用
  8. 將SQL語句導入,字符集選utf8,不然有可能顯示不了中文,數據庫名稱爲library
    create database library;
  9. 推薦使用Mysql Front這個MySQL的前臺,支持多句sql語句一起執行,百度第一個鏈接即可下載。
    http://dlsw.baidu.com/sw-search-sp/soft/6c/17997/MySQL-Front_V5.3.4.214_Setup.1435658094.exe
  10. Java環境中加入數據庫的驅動,源程序裏database包裏DatabaseTools.java文件是有關數據庫連接的操作源程序的用戶名和密碼皆爲root,數據庫名爲:library不同電腦上運行需要稍微改一下這個代碼。
  11. 登陸:
    圖書管理員:用戶名root密碼 root或者wangyp密碼123456
    **讀者:用戶名001密碼 root **(注:數據庫內讀者的密碼初始值皆爲root)
  12. 在不同計算機上Eclipse使用,可能需要重新建立Java類庫的路徑
    本程序用1.8的jdk寫的,所以最好用1.8的jre。
    代碼放在1.8下面運行,連警告都不會出現,1.7和1.6顯示效果不好。
    awt 和 swing 都依賴虛擬機的具體實現。所以不同平臺表現不大一樣。如果用javafx,界面纔可以移植。
    而且編寫用的筆記本電腦是高分屏,在本機上顯示大小是正好的,到別的電腦上面有可能會出現界面過大的情況。
  13. 具體的文檔註釋已經生成,打開doc文件夾其中的index文件查看整個項目的註釋
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章