版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理課程設(shè)計(jì)報(bào) 告 書課 題 名 圖書信息管理系統(tǒng) 指導(dǎo)教師 日 期 目 錄一、前言.2二、概述.22.1開發(fā)目的.2三、需求分析.23.1可行性分析.23.1.1技術(shù)可行性.23.1.2經(jīng)濟(jì)可行性.33.1.3管理可行性.33.2系統(tǒng)目標(biāo).33.3系統(tǒng)應(yīng)該具備的功能.33.4系統(tǒng)結(jié)構(gòu)圖.44、 概念設(shè)計(jì).55、 邏輯設(shè)計(jì).96、 物理設(shè)計(jì).95.1表命令.95.2表結(jié)構(gòu)圖.137、 代碼實(shí)現(xiàn).136.1數(shù)據(jù)庫連接.136.2增加一條圖書記錄.146.3刪除一條圖書記錄.166.4修改一條圖書記錄.176.5查詢一條圖書記錄.18八、結(jié)束語.22前言近年來,隨著我國市場經(jīng)濟(jì)的迅速發(fā)展和人
2、們生活水平的不斷提高,以及計(jì)算機(jī)的普及使用,圖書館藏書的數(shù)目逐漸增大,這也是挑戰(zhàn)了圖書管理方面的技術(shù),以前的人工管理方式已經(jīng)不再適應(yīng)現(xiàn)在的環(huán)境,取而代之的是先進(jìn)的圖書管理系統(tǒng),提高了圖書館的工作效率,為想要借書和還書的人提供更好的服務(wù)。1、概述1.1 開發(fā)目的 圖書信息管理工作面對大量的可模塊化處理的信息,是當(dāng)今信息革命的一個重要陣地。我們小組開發(fā)圖書管理信息系統(tǒng)就是采用現(xiàn)代化的信息管理方式代替手工管理方式,提高圖書管理工作效率,做到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速查詢,讓圖書館更好的為學(xué)校、社會服務(wù)。2、需求分析2.1可行性分析2.1.1技術(shù)可行性 就技術(shù)力量來說,我們小組可以完成此次開發(fā)工作
3、。開發(fā)過程中會出現(xiàn)許多問題,有我們預(yù)想之中的,也有一些沒有在我們預(yù)想中,但我們有信心克服一切困難。我們小組各成員已經(jīng)學(xué)習(xí)了MySQL,SQL,對網(wǎng)絡(luò)技術(shù)和操作系統(tǒng)也有系統(tǒng)的了解,熟悉計(jì)算機(jī)原理,能解決常見的硬件故障和硬件選擇。2.1.2經(jīng)濟(jì)可行性 目標(biāo)系統(tǒng)開發(fā)需求比較低,加上具有成熟的軟硬件環(huán)境,所以在軟硬件的支出上十分有限。而且,目標(biāo)系統(tǒng)并不是十分的復(fù)雜,開發(fā)的周期較短,人員有限。當(dāng)系統(tǒng)開發(fā)完實(shí)際運(yùn)行后,將很大程度上提高計(jì)算機(jī)的功能,在為使用者帶來便利的同時也為系統(tǒng)的進(jìn)一步推廣創(chuàng)造了條件。2.1.3管理可行性整個系統(tǒng)由于是自行開發(fā),自行使用,所以很方便管理使用。2.2系統(tǒng)目標(biāo)圖書管理信息系統(tǒng)
4、是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng),數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化,規(guī)范化和自動化。2.3 系統(tǒng)應(yīng)該具備的功能讀者基本信息的輸入,包括借書證編號、讀者姓名、讀者性別等。讀者基本信息的查詢、修改,包括讀者借書證編號、讀者姓名、讀者性別等。書籍類別標(biāo)準(zhǔn)的制定、類別信息的輸入,包括類別編號、類別名稱。書籍類別信息的查詢、修改,包括類別編號、類別名稱。書籍庫存信息的輸入,包括書籍編號、書籍名稱、書籍類別、作者姓名、出版社名稱、出版日期
5、、登記日期。書籍庫存信息的查詢,修改,包括書籍編號、書籍名稱、書籍類別、作者姓名、出版社名稱、出版日期登記日期等。借書信息的輸入,包括讀者借書證編號、書籍編號、借書日期。借書信息的查詢、修改,包括借書證編號、借書證編號、讀者姓名、書籍編號、書籍名稱、借書日期等。還書信息的輸入,包括借書證編號、書籍編號、還書日期。 還書信息的查詢和修改,包括還書讀者借書證編號、讀者姓名、書籍編號、書籍名稱、借書日期、還書日期等。超期還書罰款輸入,還書超出期限包括超出期限還書的讀者借書證號,書籍編號,罰款金額。超期還書罰款查詢,刪除,包括讀者借書證編號、讀者姓名、書籍編號、書籍名稱,罰款金額等。管理員管理:包括創(chuàng)
6、建讀者用戶信息、刪除讀者用戶信息、添加圖書信息、刪除圖書信息。超級管理員管理:包括創(chuàng)建管理員用戶信息、刪除管理員用戶信息、創(chuàng)建讀者用戶信息、刪除讀者用戶信息、添加圖書信息、刪除圖書信息。2.4 系統(tǒng)結(jié)構(gòu)圖(根據(jù)需求分析,圖書信息管理系統(tǒng)的結(jié)構(gòu)圖如下:)圖書管理系統(tǒng)借還書子系統(tǒng)查詢子系統(tǒng)管理子系統(tǒng)圖書類管理圖書管理讀者管理逾期圖書管理管理員管理直接查詢多條件查詢借 書還 書幫助子系統(tǒng)登錄子系統(tǒng)3、概念設(shè)計(jì)所要實(shí)現(xiàn)的功能設(shè)計(jì),可能建立它們之間的關(guān)系,進(jìn)而實(shí)現(xiàn)邏輯結(jié)構(gòu)功能。圖書管理信息系統(tǒng)可以劃分的實(shí)體有:書籍類別信息實(shí)體、讀者信息實(shí)體、書籍信息實(shí)體、借閱記錄信息實(shí)體,歸還記錄信息實(shí)體。用E-R圖一
7、一描述這些實(shí)體。類別實(shí)體圖:書籍類別類別編號類別名稱讀者信息實(shí)體圖:讀者讀者姓名讀者性別讀者種類e登記時間讀者借書證編號可借書數(shù)已借書數(shù)逾期未還書數(shù)管理員實(shí)體圖管理員管理員姓名管理員編號管理員密碼管理員權(quán)限超級管理員實(shí)體圖超級管理員管理員姓名管理員編號管理員密碼管理員權(quán)限書籍實(shí)體圖:書籍書籍編號書籍名稱書籍類別編號書籍作者出版時間收錄時間是否被借出版社借閱記錄息信實(shí)體圖:讀者借書證編號書籍類別編號借閱時間隔借閱記錄信息歸還記錄信息實(shí)體圖:歸還記錄信息讀者借書證編號書籍類別編號歸還時間隔罰款信息實(shí)體圖:書籍類別編號罰款信息實(shí)體實(shí)體罰款金額讀者姓名讀者借書證編號書籍名稱借閱時間隔總的信息實(shí)體E-R
8、圖:11n信息登記讀者書籍書類別歸還借閱罰款罰款信息還書信息借閱信息實(shí)體mnmnmnn1m創(chuàng)建1管理nnn管理m管理員超級管理員創(chuàng)建1mn出具罰款單4、邏輯設(shè)計(jì)(1)書籍類別(類別編號,類別名)(2)讀者(借書證編號,讀者姓名,讀者性別,讀者種類,登記時期, 可借書數(shù) ,已借書數(shù),逾期未還書數(shù))(3) 管理員(管理員編號,管理員姓名,管理員密碼,管理員權(quán)限)(4) 超級管理員(管理員編號,管理員姓名,管理員密碼,管理員權(quán)限)(5)書籍(書籍編號,書籍名稱,書籍類別,書記作者,出版社名稱, 出版日期,登記日期)(6)借閱(借書證編號,書籍編號,讀者借書時間)(7)還書(借書證編號,書籍編號,讀者
9、還書時間)(8)罰款(借書證編號,讀者姓名,借書證編號,書籍編號,讀者借書 時間)5、 物理設(shè)計(jì)表命令:(1)創(chuàng)建數(shù)據(jù)庫CREATE DATABASE librarysystemON ( NAME = librarysystem, FILENAME = 'd:librarysystem.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON( NAME = 'library', FILENAME = 'e:librarysystem.ldf', SIZE = 5MB, MAXSIZE = 25M
10、B, FILEGROWTH = 5MB )(2)書本類別表建立create table book_style( bookstyleno varchar(30) primary key, bookstyle varchar(30)(3)創(chuàng)建書庫表create table system_books( bookid varchar(20) primary key, bookname varchar(30) Not null, bookstyleno varchar(30) Not null, bookauthor varchar(30), bookpub varchar(30) , bookpubd
11、ate datetime, bookindate datetime , isborrowed bit, foreign key (bookstyleno) references book_style (bookstyleno),)(4)借書證表建立create table system_readers ( readerid varchar(9)primary key, readername varchar(9)not null , readersex varchar(2) not null, readertype varchar(10), regdate datetime,booktotal
12、int,borrowednum int,overduenoreturnnum int )(5)借書記錄表建立create table borrow_record( bookid varchar(20) primary key, readerid varchar(9), borrowdate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid),)(6)還書記錄表建立create table return_
13、record( bookid varchar(20) primary key, readerid varchar(9), returndate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid) (7)罰款單表建立create table reader_fee( readerid varchar(9)not null, readername varchar(9)not null , bookid var
14、char(20) primary key, bookname varchar(30) Not null, bookfee smallmoney, borrowdate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid)(8) 管理員表建立create table system_Administrator ( administratorid varchar(9)primary key, administr
15、atorname varchar(9)not null , administratorpassword varchar(2) not null, administratorpermission varchar(10) )(9) 索引的創(chuàng)建create index bookstyle_index_style on book_style(bookstyle)create index borrow_record_index_readerid on borrow_record(readerid)create index reader_fee_index_readerid on reader_fee (
16、readerid)create index return_record_index_readerid on return_record(readerid)create index system_books_index_bookname on system_books(bookname)create index system_books_index_styleno on system_books(bookstyleno)create index system_books_index_bookauthor on system_books(bookauthor)表3-1 book_sytle 書籍類
17、別信息表表中列名數(shù)據(jù)類型可否為空說明bookstylenovarcharnot null(主鍵)種類編號bookstyleVarcharnot null種類名稱表3-2system_readers讀者信息表格表中列名數(shù)據(jù)類型可否為空說明readeridvarcharnot null(主鍵)讀者借書證號readernamevarcharnot null讀者姓名readersexvarcharnot null讀者性別readertypevarcharnot null讀者種類regdatedatetimenull登記日期booktotalintnull可借書數(shù)borrowednumintnull已借
18、書數(shù)overduenoreturnnumintnull逾期未還書數(shù)表3-3system_book書籍信息表表中列名數(shù)據(jù)類型可否為空說明bookidVarcharNot null(主鍵)書籍編號booknameVarcharNot null書籍名稱續(xù)表3-3bookstyleVarcharNot null書籍類別bookauthorVarcharNot null書籍作者bookpubVarcharNull出版社名稱bookpubdateDatetimeNull出版日期bookindateDatetimeNull登記日期isborrowedBitNot Null是否被借出表3-4borrow_re
19、cord 借閱記錄信息表表中列名數(shù)據(jù)類型可否為空說明readeridVarcharNot null(外主鍵)讀者借閱證編號bookidVarcharNot null(外主鍵)書籍編號borrowdateDatetimeNot null讀者借書時間表3-5return_record 借閱記錄信息表表中列名數(shù)據(jù)類型可否為空說明readernameVarcharNot null(外主鍵)讀者借閱證編號readeridVarcharNot null(外主鍵)書籍編號returndatedatetimeNot null讀者還書時間表3-6reader_fee 罰款記錄信息表表中列名數(shù)據(jù)類型可否為空說明r
20、eaderidvarcharNot null讀者借書證編號readernamevarcharNot null讀者姓名bookidvarcharNot null(外主鍵)書籍編號booknamevarcharNot null書籍名稱bookfeeSmallmoneyNot Null罰款金額borrowdatedatetimeNot Null借閱時間表3-7system_Administrator管理員信息表表中列名數(shù)據(jù)類型可否為空說明administratoridvarcharnot null(主鍵)管理員編號administratornamevarcharnot null管理員姓名admini
21、stratorpasswordvarcharnot null管理員密碼administratorpermissionvarcharnot null管理員權(quán)限表3-8 system_Super_Administrator管理員信息表表中列名數(shù)據(jù)類型可否為空說明superadministratoridvarcharnot null(主鍵)管理員編號superadministratornamevarcharnot null管理員姓名superadministratorpasswordvarcharnot null管理員密碼superadministratorpermissionvarcharnot
22、null管理員權(quán)限表結(jié)構(gòu)圖:6、代碼實(shí)現(xiàn)1)數(shù)據(jù)庫的連接: import java.sql.*; import javax.swing.JOptionPane; public class Query public static Connection conection = null; static Connection getConnection()/連接 MySQL 數(shù)據(jù)庫 try Class.forName("org.gjt.mm.mysql.Driver");/加載驅(qū)動 conection = DriverManager.getConnection(/連接字符串 &q
23、uot;jdbc:mysql:/localhost:3306/book","root","123"); System.out.println("數(shù)據(jù)庫連接成功"); catch(java.lang.ClassNotFoundException classnotfound) classnotfound.printStackTrace();/驅(qū)動未找到 catch(java.sql.SQLException sql) sql.printStackTrace();/SQL 執(zhí)行時發(fā)生異常,打印棧信息 return conectio
24、n; 2)增加一條圖書記錄:public static boolean Insert(Book aBook) Connection connect=getConnection();/得到連接 boolean res=false; try Statement stmt = connect.createStatement();/查詢集 String sql = "select * from book where BID='"+aBook.getBID()+"'" ResultSet rs=stmt.executeQuery(sql);/執(zhí)行
25、SQL 命令,返回結(jié)果集 if (rs.next()/圖書編號存在 res=false; JOptionPane.showMessageDialog(null,"學(xué)生信息插入失敗,該 學(xué)生 ID 號已存在","警告",JOptionPane.WARNING_MESSAGE); rs.close(); stmt.close(); else /不存在 String sqlString="insert into book values('"+aBook.getBID()+"','"+aBook.g
26、etBname()+"','"+aBook.getBauthor()+"','"+aBook.getPress()+"','"+aBook.getBinfo()+"','"+aBook.getYear()+"-"+aBook.getMonth()+"-"+aBook.getDay()+"','"+ aBook.getBclass()+"')" res
27、 =stmt.execute(sqlString); res=true; if(res) JOptionPane.showMessageDialog(null," 圖 書 信 息 插 入 成 功","成功",JOptionPane.INFORMATION_MESSAGE); rs.close(); else res=false; JOptionPane.showMessageDialog(null,"圖書信息插入失敗", "警告",JOptionPane.WARNING_MESSAGE); rs.close();
28、catch (SQLException e) /捕獲異常 res=false; System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); return res; 3)刪除一條圖書記錄:public static boolean delBook(String bid) Connection connect=getConnection(); boolean res=false; try Statement stmt = connect.createStatement(); String sql =
29、 "select * from book where Bid='"+bid+"'" ResultSet rs=stmt.executeQuery(sql); if (rs.next() String sqlString="delete from book where Bid='"+bid+"'" stmt.executeUpdate(sqlString); JOptionPane.showMessageDialog(null,"圖書信息刪除成功", "成
30、功",JOptionPane.INFORMATION_MESSAGE); res=true; rs.close(); stmt.close(); else JOptionPane.showMessageDialog(null,"圖書信息刪除失敗,該 圖書 ID 號不存在","警告",JOptionPane.WARNING_MESSAGE); res=false; rs.close(); stmt.close(); catch (SQLException e) JOptionPane.showMessageDialog(null,"圖書
31、信息刪除失敗", "成功",JOptionPane.INFORMATION_MESSAGE); res=false;System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); return res; 4)修改圖書信息: public static boolean modifyBook(Book oldBook) Connection connect=getConnection(); boolean flag=false; try Statement stmt = c
32、onnect.createStatement(); /查詢集 String sqlString="update book set Bname='"+oldBook.getBname()+"',Bauthor='"+oldBook.getBauthor() +"', Press='"+oldBook.getPress()+"', BInfo='"+oldBook.getBinfo()+"',BDate='"+oldBook.g
33、etYear()+"-"+oldBook.getMonth()+"-"+oldBook.getDay()+"',Bclass='"+oldBook.getBclass()+"' where BID='"+oldBook.getBID()+"'" stmt.executeUpdate(sqlString); JOptionPane.showMessageDialog(null,"圖書信息修改成功", "成功",JOpt
34、ionPane.INFORMATION_MESSAGE); flag=true; catch (SQLException e) /捕獲錯誤 JOptionPane.showMessageDialog(null,"圖書信息修改失敗", "警告",JOptionPane.WARNING_MESSAGE);flag=false; System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); return flag; 5)修改一條圖書記錄并將結(jié)果用表格顯示出來:pu
35、blic javax.swing.ListSelectionModel; javax.swing.RowSorter; javax.swing.table.DefaultTableModel; javax.swing.table.TableRowSorter; class BookInfoQuery extends JFrame BorderLayout borderLayout1 = new BorderLayout();/布局方式 JSplitPane jSplitPane1 = new JSplitPane();/分割面板 JScrollPane jScrollPane1 = new J
36、ScrollPane();/滾動面板,用于放置表格 JPanel jPanel1 = new JPanel();/面板 JTable jTable1 = new JTable();/表格DefaultTableModel tablemodel = null;/默認(rèn)表格模型 JPanel jPanel3 = new JPanel();/面板 GridLayout gridLayout1 = new GridLayout();/ 網(wǎng)格布局方式 JButton jBexit = new JButton();/退出按鈕 ListSelectionModel selectionMode=null; pu
37、blic BookInfoQuery(String bID,String bname,String bauthor, String press,String bInfo,String year,String month,String day,String bclass) getContentPane().setLayout(borderLayout1);/設(shè)置布局方式 String name = "圖書編號","圖書名稱","作者","出版社","圖書簡介 ","出版時間",
38、 "類別" String sqlStr = "select * from book where Year(BDate)>1900" if(bID!=null)/查詢時如果編號不為空 sqlStr+=" and BID='"+bID+"'" if(bname!=null)/查詢時如果圖書名不為空 sqlStr+=" and Bname like '%"+bname+"%'"/模糊查詢 if(bauthor!=null)/查詢時如果作者不為空
39、 sqlStr+=" and Bauthor like'%"+bauthor+"%'"/模糊查詢 if(press!=null)/查詢時如果出版社不為空 sqlStr+=" and Press like '%"+press+"%'"/模糊查詢 if(bInfo!=null)/查詢時如果圖書信息不為空 sqlStr+=" and Binfo like '%"+bInfo+"%'"/模糊查詢 if(year!=null)/出版年份不
40、為空 sqlStr+=" and Year(BDate)"+year+" "/按條件查詢 if(month!=null)/出版月份不為空 sqlStr+=" and Month(BDate)"+month+" "/按條件查詢 if(day!=null)/出版日不為空 sqlStr+=" and Day(BDate)"+day+" "/按條件查詢 if(bclass!=null)/ 圖書類別不為空 sqlStr+=" and Bclass like '%&qu
41、ot;+bclass+"%'"/模糊查詢 sqlStr+=" order by BDate desc"/按出版日期降序排序 ToTable bdt = new ToTable(); tablemodel = bdt.getTableModel(name,sqlStr); jTable1.setModel(tablemodel); jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMN S);/讓其它的列也跟隨變動 jTable1.setEnabled(true);/設(shè)置表格可用
42、 jTable1.setCellSelectionEnabled(true); jTable1.setBackground(Color.pink);/設(shè)置表格背景顏色 selectionMode=jTable1.getSelectionModel();selectionMode.setSelectionMode(ListSelectionModel.SINGLE_SELEC TION); jTable1.setRowHeight(24);/設(shè)置表格高度 RowSorter<DefaultTableModel> sorter TableRowSorter<DefaultTableModel>(tablemodel)= newjTable1.setRowSorter(sorter);/表格排序過濾 jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); jScrollPane1.setVerticalScrollBarPolicy(JScrollPan
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程拆除新施工合同范本
- 薪酬體系與員工流動率
- 泰安市河道景觀雕塑設(shè)計(jì)規(guī)范
- 2024年設(shè)計(jì)稿保密協(xié)議3篇
- 城市供水工程電子合同
- 2024年道路施工起重機(jī)械租賃及安全管理協(xié)議3篇
- 釀酒行業(yè)對賬自動化方案
- 2025民間抵押借款合同范本2
- 2025民間借款合同潛規(guī)則
- 生產(chǎn)信息化管理實(shí)施手冊
- 2024-2025學(xué)年部編版(2024)七年級歷史上冊知識點(diǎn)提綱
- 鐵路技術(shù)管理規(guī)程-20220507141239
- 2024年公安機(jī)關(guān)招警面試題及參考答案
- 國家開放大學(xué)2024年(202401-202407)《2667績效與薪酬實(shí)務(wù)》期末考試真題
- 植物學(xué)智慧樹知到答案2024年浙江大學(xué)
- 房地產(chǎn)抵押貸款公證合同模板
- 礦山開采與生產(chǎn)管理
- 糖尿病的預(yù)防及治療幻燈片
- 綜合能力測試(一)附有答案
- 大學(xué)體育與健康智慧樹知到期末考試答案章節(jié)答案2024年齊魯師范學(xué)院
- 化學(xué)實(shí)驗(yàn)操作評分細(xì)則表
評論
0/150
提交評論