![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/10/22/df899e26-393d-4a2f-acf5-04f5351399df/df899e26-393d-4a2f-acf5-04f5351399dfpic.jpg)
![校園圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)書_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/10/22/df899e26-393d-4a2f-acf5-04f5351399df/df899e26-393d-4a2f-acf5-04f5351399df1.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 校園圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)書</p><p><b> 引言</b></p><p><b> 編寫目的</b></p><p> 圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)是設(shè)計(jì)的第二個(gè)階段,這個(gè)階段的主要任務(wù)是在圖書管理系統(tǒng)概要設(shè)計(jì)書基礎(chǔ)上,對概要設(shè)計(jì)中產(chǎn)生的功能模塊進(jìn)行過程描述,設(shè)計(jì)功能模塊的內(nèi)部細(xì)節(jié),包括算法和
2、詳細(xì)數(shù)據(jù)結(jié)構(gòu),為編寫源代碼提供必要的說明。</p><p> 概要設(shè)計(jì)解決了軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)的問題,包括整個(gè)軟件系統(tǒng)的結(jié)構(gòu)、模塊劃分、模塊功能和模塊間的聯(lián)系等。詳細(xì)設(shè)計(jì)則要解決如何實(shí)現(xiàn)各個(gè)模塊的內(nèi)部功能,即模塊設(shè)計(jì)。具體的說,模塊設(shè)計(jì)就是要為已經(jīng)產(chǎn)生的圖書管理各子系統(tǒng)設(shè)計(jì)詳細(xì)的算法。但這并不等同于系統(tǒng)實(shí)現(xiàn)階段用具體的語言編碼,它只是對實(shí)現(xiàn)細(xì)節(jié)作精確的描述,這樣編碼階段就可以將詳細(xì)設(shè)計(jì)中對功能實(shí)現(xiàn)的描述,直接
3、翻譯、轉(zhuǎn)化為用某種程序設(shè)計(jì)語言書寫的程序。</p><p><b> 項(xiàng)目背景</b></p><p> 根據(jù)XX學(xué)校希望能夠充分利用現(xiàn)代科技來提高圖書管理的效率,在原有的辦公系統(tǒng)基礎(chǔ)上進(jìn)行擴(kuò)展,將一些可以用計(jì)算機(jī)來管理的都進(jìn)行計(jì)算機(jī)化,使得圖書館管理人員工作更加方便,工作效率也更加的高。</p><p><b> 定義<
4、/b></p><p> ?Mysql:數(shù)據(jù)庫管理軟件</p><p> ?DBMS:數(shù)據(jù)庫管理系統(tǒng)</p><p> ?Windows 2000/2003/XP:運(yùn)行環(huán)境</p><p> ?JSP :軟件開發(fā)語言</p><p> ?Myeclipse :開發(fā)工具</p><p&
5、gt;<b> 總體設(shè)計(jì)</b></p><p><b> 需求概述</b></p><p> 按照需求分析文檔中的規(guī)格要求,使用條形碼掃描器進(jìn)書、借書、還書,使得信息傳遞準(zhǔn)確、流暢。同時(shí),系統(tǒng)最大限度地實(shí)現(xiàn)易安裝,易維護(hù)性,易操作性,運(yùn)行穩(wěn)定,安全可靠。</p><p><b> 軟件結(jié)構(gòu)</b&
6、gt;</p><p> 系統(tǒng)由3大模塊,6小模塊組成:</p><p><b> 序號編號名稱</b></p><p> 01 登陸模塊</p><p> 02 管理模塊</p><p> 031圖書信息查詢模塊</p><p> 03
7、2學(xué)生信息查詢模塊</p><p> 021入庫管理模塊</p><p> 022學(xué)生借書模塊</p><p> 023學(xué)生還書模塊</p><p> 024圖書注銷模塊</p><p> 040基礎(chǔ)信息設(shè)置</p><p><b> 程序描述<
8、;/b></p><p><b> 01登陸模塊</b></p><p><b> 具體格式見下表:</b></p><p><b> 功能流程圖</b></p><p> 功能流程圖如下圖所示。</p><p><b> 需要
9、說明的問題:</b></p><p> 錄入項(xiàng)檢測使用javascript實(shí)現(xiàn)(各項(xiàng)必須非空)</p><p> 登陸.jsp頁面也包含查詢按鈕,在此的登陸.jsp提交的數(shù)據(jù)只是用戶名和密碼。</p><p><b> 功能描述</b></p><p><b> 功能類型:查詢數(shù)據(jù)</
10、b></p><p> 功能描述:提高系統(tǒng)的安全性</p><p><b> 前提業(yè)務(wù):無</b></p><p> 后繼業(yè)務(wù):02 (管理模塊)</p><p><b> 功能約束:權(quán)限約束</b></p><p><b> 約束描述:</b
11、></p><p> 操作權(quán)限:圖書館管理員</p><p><b> 界面設(shè)計(jì)</b></p><p><b> 基礎(chǔ)信息處理 </b></p><p><b> 動(dòng)作說明:</b></p><p><b> 數(shù)據(jù)要求<
12、/b></p><p><b> 功能類型:數(shù)據(jù)查詢</b></p><p><b> 數(shù)據(jù)描述:</b></p><p> 頁面顯示錄入字段如下:</p><p> 登陸數(shù)據(jù)處理.jsp的內(nèi)部邏輯</p><p><b> 登陸數(shù)據(jù)處理:</
13、b></p><p> 關(guān)鍵點(diǎn)兩點(diǎn):1,數(shù)據(jù)庫連接;2,記錄登陸信息及信息處理;</p><p><b> 數(shù)據(jù)庫連接: </b></p><p><b> 如下:</b></p><p> public class lib_system_Conn extends Object{<
14、;/p><p> public lib_system_Conn(){</p><p><b> } </b></p><p> private Connection conn = null;</p><p> private ResultSet rs;</p><p> String re
15、 = "";</p><p> //設(shè)置你的數(shù)據(jù)庫ip</p><p> String dbip = "127.0.0.1";</p><p> //設(shè)置你的數(shù)據(jù)庫用戶名和密碼:</p><p> String use = "root";</p><p&g
16、t; String pass = "860409";</p><p> //設(shè)置您的數(shù)據(jù)庫名</p><p> String dbName = "lib_system";</p><p> public java.sql.Connection getConn(){</p><p><b&g
17、t; try{</b></p><p> Class.forName("org.gjt.mm.mysql.Driver").newInstance();</p><p> String url ="jdbc:mysql://"+dbip+":3306/"+dbName+"?user="+use
18、+"&password="+pass+"&useUnicode=true&characterEncoding=GBK" ;</p><p> conn= DriverManager.getConnection(url);</p><p><b> }</b></p><p>
19、 catch(Exception e){</p><p> e.printStackTrace();</p><p><b> }</b></p><p> return this.conn ;</p><p><b> }</b></p><p><b>
20、 }</b></p><p> //在Mysql建立lib_system數(shù)據(jù)庫,之后將與數(shù)據(jù)操作相關(guān)數(shù)據(jù)與該數(shù)據(jù)庫相連;</p><p> 記錄登陸信息及信息處理:</p><p> 當(dāng)用戶點(diǎn)擊“登陸”按鈕之后,數(shù)據(jù)將提交到登陸數(shù)據(jù)處理.jsp頁面。 取得帳號密碼這兩個(gè)從頁面?zhèn)魅氲闹?,然后跟?shù)據(jù)庫當(dāng)中管理員表中的賬號和密碼比較。如果正確的話,在J
21、SP的SESSION中存入一個(gè)標(biāo)記屬性,表示當(dāng)前已經(jīng)有管理員登陸了。處理完畢后,跳轉(zhuǎn)到管理頁面,如果失敗,則提示登陸失敗,并重新進(jìn)入到登陸頁面。</p><p><b> 具體的邏輯如下:</b></p><p><b> <%</b></p><p> String username=ParamUtil.ge
22、tString(request,"admin_ID");</p><p><b> //取得用戶名</b></p><p> String password=ParamUtil.getString(request,"admin_password");</p><p><b> //取得密碼
23、</b></p><p> String erroMsg="";</p><p><b> //錯(cuò)誤碼</b></p><p> if(username!=null&&password!=null)</p><p><b> try</b>&l
24、t;/p><p><b> {</b></p><p> SkinUtil.login(request,response,admin_ID,admin_password);</p><p> //在JSP的session中存如一個(gè)標(biāo)記屬性,表示當(dāng)前已經(jīng)有管理員登陸了</p><p> Session.setAttri
25、bute(“admin_ID”,admin_ID);</p><p> response.sendRedirect("login_process.jsp");</p><p><b> }</b></p><p> catch(UserNotFoundException e)</p><p>&
26、lt;b> {</b></p><p> erroMsg="錯(cuò)誤的用戶名和密碼";</p><p> response.sendRedirect("login_process.jsp?"+response.encodeURL(erroMsg));</p><p><b> }</b&g
27、t;</p><p><b> else{</b></p><p> out.println("請?zhí)顚懞媚愕膫€(gè)人信息!");</p><p><b> }</b></p><p><b> %></b></p><p>
28、<b> 存儲(chǔ)分配</b></p><p> 管理員表:(admin)</p><p><b> 02管理模塊</b></p><p><b> 具體格式見下表</b></p><p><b> 功能流程圖</b></p><
29、p> 功能流程圖如下所示:</p><p><b> 需要說明的問題:</b></p><p> 在選擇相應(yīng)的業(yè)務(wù)時(shí),需要在當(dāng)前的頁面顯示;并且在管理頁面內(nèi),默認(rèn)顯示圖書查詢頁面。</p><p><b> 功能描述</b></p><p><b> 功能類型:其他<
30、/b></p><p> 功能概述:總體歸納圖書館管理功能</p><p> 前提業(yè)務(wù):登陸模塊(01)</p><p> 后續(xù)業(yè)務(wù):021,022,023,024,03</p><p><b> 功能約束:權(quán)限約束</b></p><p><b> 約束描述:</
31、b></p><p> 操作權(quán)限:圖書館管理人員</p><p><b> 界面設(shè)計(jì)</b></p><p><b> 基本信息處理</b></p><p><b> 動(dòng)作說明如下:</b></p><p><b> 數(shù)據(jù)要求&
32、lt;/b></p><p><b> 功能類型:其他</b></p><p> 031圖書信息查詢模塊</p><p><b> 具體格式如下:</b></p><p><b> 功能流程圖</b></p><p><b>
33、功能流程圖如下圖:</b></p><p><b> 需要說明的問題:</b></p><p> 錄入項(xiàng)檢測使用javascript來實(shí)現(xiàn)(各項(xiàng)非空);</p><p> 操作權(quán)限:面向所有用戶</p><p><b> 功能描述</b></p><p>
34、<b> 功能類型:查詢數(shù)據(jù)</b></p><p> 功能概述:顯示查詢結(jié)果</p><p><b> 前提業(yè)務(wù):無</b></p><p><b> 后繼業(yè)務(wù):</b></p><p> 功能約束:沒有約束;</p><p><b&g
35、t; 約束描述:</b></p><p> 操作權(quán)限:面向所有用戶</p><p><b> 界面設(shè)計(jì)</b></p><p><b> 基礎(chǔ)信息處理</b></p><p><b> 下表是動(dòng)作說明:</b></p><p>&l
36、t;b> 數(shù)據(jù)要求</b></p><p><b> 功能類型:數(shù)據(jù)查詢</b></p><p><b> 數(shù)據(jù)描述:</b></p><p> 頁面顯示字段見下表:</p><p> 圖書信息查詢的輸出項(xiàng)</p><p><b> 模
37、塊內(nèi)部邏輯</b></p><p> Search.jsp用于顯示界面的內(nèi)容,給用戶顯示一個(gè)查詢接口</p><p> Lib_query.jsp用來調(diào)度所有的頁面,它根據(jù)傳入的參數(shù)來決定包含哪一個(gè)jsp頁面來顯示內(nèi)容;</p><p> 在lib_query.jsp頁面中,</p><p> 它根據(jù)傳入的參數(shù)來決定包含哪
38、一個(gè)jsp頁面來顯示內(nèi)容;則可以通過<jsp:include page=”<%= ……%>”/>,利用jsp:include標(biāo)簽來被動(dòng)態(tài)加載發(fā)送到相應(yīng)頁面;</p><p> chuli.jsp 用來處理數(shù)據(jù)查詢和顯示查詢到的結(jié)果列表。</p><p> 在這個(gè)頁面中,數(shù)據(jù)要求是以列表的形式顯示到輸出頁面。</p><p> 由于查詢到
39、的結(jié)果可能過多,所以采用分頁形式顯示;</p><p> 對于分頁功能的內(nèi)部邏輯:</p><p> View.jsp用來顯示查詢到的圖書的各項(xiàng)屬性。</p><p><b> 存儲(chǔ)分配</b></p><p> 圖書目錄文件(Book):</p><p> 借書文件表(JSWJB):&
40、lt;/p><p> 032學(xué)生信息查詢模塊</p><p><b> 具體格式如下:</b></p><p><b> 功能流程圖</b></p><p><b> 功能流程圖如下圖:</b></p><p><b> 需要說明的問題:
41、</b></p><p> 錄入項(xiàng)檢測使用javascript來實(shí)現(xiàn)(各項(xiàng)非空);</p><p> 操作權(quán)限:面向所有用戶</p><p><b> 功能描述</b></p><p><b> 功能類型:查詢數(shù)據(jù)</b></p><p> 功能概述:顯
42、示查詢結(jié)果</p><p><b> 前提業(yè)務(wù):無</b></p><p><b> 后繼業(yè)務(wù):</b></p><p> 功能約束:沒有約束;</p><p><b> 約束描述:</b></p><p> 操作權(quán)限:面向所有用戶</p
43、><p><b> 界面設(shè)計(jì)</b></p><p><b> 基礎(chǔ)信息處理</b></p><p><b> 下表是動(dòng)作說明:</b></p><p><b> 數(shù)據(jù)要求</b></p><p><b> 功能類型
44、:數(shù)據(jù)查詢</b></p><p><b> 數(shù)據(jù)描述:</b></p><p> 頁面顯示字段見下表:</p><p> 學(xué)生信息查詢的輸出項(xiàng)</p><p><b> 模塊內(nèi)部邏輯</b></p><p> Search.jsp用于顯示界面的內(nèi)容,給
45、用戶顯示一個(gè)查詢接口</p><p> Index.jsp用來調(diào)度所有的頁面,它根據(jù)傳入的參數(shù)來決定包含哪一個(gè)jsp頁面來顯示內(nèi)容;</p><p> 在index.jsp頁面中,</p><p> 它根據(jù)傳入的參數(shù)來決定包含哪一個(gè)jsp頁面來顯示內(nèi)容;則可以通過<jsp:include page=”<%= ……%>”/>,利用jsp:
46、include標(biāo)簽來被動(dòng)態(tài)加載發(fā)送到相應(yīng)頁面;</p><p> List.jsp 用來顯示查詢到的結(jié)果列表。</p><p> View.jsp用來顯示查詢到的學(xué)生的各項(xiàng)屬性。</p><p> ★★注釋:學(xué)生信息查詢模塊與圖書查詢模塊屬于同一類功能。實(shí)現(xiàn)可以完全類似。</p><p><b> 存儲(chǔ)分配</b>
47、;</p><p><b> 學(xué)生文件:</b></p><p><b> 借書文件:</b></p><p><b> 021入庫管理</b></p><p><b> 具體格式如下:</b></p><p><b&
48、gt; 功能流程圖</b></p><p> 執(zhí)行數(shù)據(jù)庫操作的時(shí)候要驗(yàn)證權(quán)限</p><p> 錄入項(xiàng)檢驗(yàn)用javascript來實(shí)現(xiàn)(選項(xiàng)非空)</p><p><b> 功能描述</b></p><p><b> 功能類型:添加數(shù)據(jù)</b></p><p
49、> 功能描述:增加圖書目錄文件中的圖書信息。</p><p><b> 前提業(yè)務(wù):管理模塊</b></p><p><b> 后繼業(yè)務(wù):無</b></p><p><b> 功能約束:權(quán)限約束</b></p><p><b> 約束描述:無</b
50、></p><p> 操作權(quán)限:圖書館管理人員</p><p><b> 界面設(shè)計(jì)</b></p><p><b> 基礎(chǔ)信息處理</b></p><p><b> 動(dòng)作說明如下表:</b></p><p><b> 數(shù)據(jù)描述&
51、lt;/b></p><p> 功能類型:數(shù)據(jù)增加。</p><p><b> 數(shù)據(jù)描述:</b></p><p> 頁面錄入字段見下表:</p><p> 入庫數(shù)據(jù)處理內(nèi)部邏輯:</p><p> 圖書入庫采用表格進(jìn)行多行添加:</p><p> 利用j
52、avaBean來編寫一個(gè)BookBean來管理圖書。</p><p> 在BookBean類中增加記錄的公共接口來實(shí)現(xiàn)入庫數(shù)據(jù)的添加。</p><p><b> 具體的類設(shè)計(jì)如下:</b></p><p> Public int insert (Hashtable hash){</p><p> int intI
53、D = makeID("Book","BookID","","",true);</p><p> Vector vect = new Vector();</p><p> vect.add("Book");</p><p> vect.add(addVector
54、("BookID",String.valueOf(intID),"NUM"));vect.add(addVector("Title",ds.toString((String)hash.get("TITLE")),"CHAR")); vect.add(addVector("Author",ds.toString(
55、(String)hash.get("AUTHOR")),"CHAR"));vect.add(addVector("ISBN",ds.toString((String)hash.get("ISBN")),"CHAR"));</p><p> 。。。。。。。。。。。。。。。。。。。。//還有其他選項(xiàng),同上格式
56、。</p><p> return insertRecord(vect);</p><p><b> }</b></p><p> 該方法有一個(gè)參數(shù),是java.util.Hashtable類,在調(diào)用該方法前,先用和hashtable的put方法將字段名和該條記錄的值存入hashtable中,然后將這個(gè)hashtable作為參數(shù)傳入ins
57、ert方法中。</p><p> 在insert方法的最后,調(diào)用ParentBean中的insertRecord方法,insertRecord可以根據(jù)傳入的參數(shù)自動(dòng)的生成增加記錄的SQL語句并通過JDBC發(fā)送到數(shù)據(jù)庫。</p><p> 正對ParentBean類:主要是實(shí)現(xiàn)對數(shù)據(jù)庫的各種操作:如與數(shù)據(jù)庫的連接,對數(shù)據(jù)庫的操作。</p><p><b>
58、; 存儲(chǔ)分配</b></p><p><b> 圖書目錄文件:</b></p><p><b> 入庫表:</b></p><p><b> 注:</b></p><p><b> 022學(xué)生借書模塊</b></p>&
59、lt;p><b> 具體格式如下:</b></p><p><b> 功能流程圖</b></p><p><b> 需要說明的問題:</b></p><p> 在進(jìn)行借書,修改數(shù)據(jù)信息時(shí),應(yīng)先查詢學(xué)生的欠款信息,如欠款超額,則利用javascript實(shí)現(xiàn)信息提示,拒絕借書,如無超額,則接
60、受借書。</p><p> 為便于以后的恢復(fù)操作,此修改操作只在表中做一個(gè)標(biāo)志,并不是真正的對其修改;</p><p><b> 功能描述</b></p><p> 功能類型:修改數(shù)據(jù)和查詢數(shù)據(jù)</p><p> 功能描述:更新學(xué)生借書文件,圖書目錄文件等中的信息;</p><p><
61、;b> 前提業(yè)務(wù):管理模塊</b></p><p><b> 后繼業(yè)務(wù):無</b></p><p><b> 功能約束:權(quán)限約束</b></p><p><b> 約束描述:</b></p><p> 操作權(quán)限:圖書館管理人員</p>
62、<p><b> 界面設(shè)計(jì)</b></p><p><b> 基礎(chǔ)信息處理</b></p><p><b> 動(dòng)作說明如下:</b></p><p><b> 數(shù)據(jù)描述</b></p><p> 功能類型:修改數(shù)據(jù)和查詢數(shù)據(jù)</p
63、><p><b> 界面設(shè)計(jì):</b></p><p><b> 數(shù)據(jù)字段描述:</b></p><p> 圖書借閱數(shù)據(jù)處理內(nèi)部邏輯</p><p> If(strEdit.equals(“1”)){</p><p> If(學(xué)生超額|學(xué)生不存在){</p>
64、<p> ifSuccess=false;</p><p><b> }else{</b></p><p> If(!bb.IsValid(hash)){</p><p><b> //新增操作</b></p><p> Int intdel[]=bb.addBorrow(h
65、ash);</p><p> If(intdel==null){</p><p> ifSuccess=false;</p><p><b> }else{</b></p><p> For(int i=0;i<intdel.length;i++){</p><p> %>&
66、lt;script>alert(“<%=intdel[i]%>”);</script><%</p><p> If(intdel[i]!=1)</p><p> ifSuccess=false;</p><p><b> }</b></p><p><b> }<
67、;/b></p><p><b> }</b></p><p><b> }</b></p><p> If(!ifSuccess){</p><p> %><script>alert(“借閱失敗!”);</script><%</p>
68、<p><b> }else{</b></p><p> %><script>alert(“借閱成功!”);</script><%</p><p><b> }</b></p><p><b> }</b></p><p>
69、<b> 執(zhí)行的過程如下:</b></p><p> 首先要驗(yàn)證學(xué)生信息是否存在和學(xué)生的欠款是否超額,也就是說學(xué)生是否可以借書,圖書是否在館等,在 確定合法之后調(diào)用bb.addBorrow(hash)來完成借閱流程。流程其實(shí)就是對幾個(gè)表進(jìn)行增改的操作。</p><p> 關(guān)于addBorrow(hash)的算法:</p><p> pu
70、blic int[] addBorrow(Hashtable hash)</p><p><b> {</b></p><p> System.out.println("批量處理新增借閱。。。。。。");</p><p> String sql="";</p><p> i
71、nt intID = makeID("JYWJB","JYID","","",true);</p><p> String strID=String.valueOf(intID);</p><p> String strZJH = ds.toString((String)hash.get("ZJH
72、"));//證件號</p><p> String strTXM = ds.toString((String)hash.get("TXM"));//條形碼</p><p> String strJYSJ = ds.toString((String)hash.get("JYSJ"));//借閱時(shí)間</p><p>
73、 String strXSID = "";//學(xué)生ID</p><p> String strBOOKID = "";//圖書ID</p><p> String strDQSJ = "";//到期時(shí)間</p><p> String strXJCS = "";//續(xù)借次數(shù)<
74、;/p><p> //根據(jù)學(xué)生證件號取的學(xué)生ID</p><p> //根據(jù)學(xué)生ID取得規(guī)則ID,然后取得可以借閱天數(shù),</p><p> sql="select Student.RuleID,Student.XSID,Rule.KJYSJ "</p><p> +" from Studengt,RULE &
75、quot;</p><p> +" where Student.ZJH='"+strZJH+"' and Student.RuleID=Rule.RuleID ";</p><p> Hashtable hashReId=(Hashtable)searchOneData(sql);</p><p> st
76、rXSID=ds.toString((String)hashReId.get("XSID"));</p><p> String strKJYSJ=ds.toString((String)hashReId.get("KJYSJ"));</p><p> //根據(jù)條形碼取得圖書ID</p><p> sql="s
77、elect BOOKID from Book where TXM='"+strTXM+"'";</p><p> Hashtable hashBKID=(Hashtable)searchOneData(sql);</p><p> strBOOKID = ds.toString((String)hashBKID.get("BOOK
78、ID"));</p><p><b> //新增操作</b></p><p> createStatement();</p><p> clearBatch();</p><p> sql=" insert into JSWJB(JYID,XSID,BOOKID,JYSJ,DQSJ,ZT,XJ
79、CS) "</p><p> +" values("+strID+","+strXSID+","+strBOOKID+",'"+strJYSJ</p><p> +"',to_char((to_date('"+strJYSJ+"',
80、39;yyyy-MM-dd')+"+strKJYSJ+"),'yyyy-MM-dd')"</p><p> +",'"+strZero+"','"+strZero+"')";</p><p> addBatch(sql);</p>
81、<p> sql="update Book set ZT='借出' where BOOKID="+strBOOKID;</p><p> addBatch(sql);</p><p> sql="update Student set YJSS=YJSS+1 where XSID="+strXSID;</p&g
82、t;<p> addBatch(sql);</p><p> int result[]=executeBatch();</p><p> closeStm();</p><p> return result;</p><p><b> }</b></p><p> 而對
83、于取消按鈕事件,由于要實(shí)現(xiàn)取消借閱,所以需要調(diào)用delBorrow(String id)來取消借閱操作;算法如下:</p><p> public int[] delBorrow(String id)</p><p><b> {</b></p><p> System.out.println("批量處理取消借閱。。。。。&qu
84、ot;);</p><p> String sql="";</p><p> sql="select BOOKID from JSWJB where JYID="+id;</p><p> Hashtable hash=(Hashtable)searchOneData(sql);</p><p>
85、 String strBOOKID=(String)hash.get("BOOKID");</p><p> createStatement();</p><p> clearBatch();</p><p> sql="update JSWJB set ZT='"+strOne+"' whe
86、re JYID="+id;</p><p> addBatch(sql);</p><p> sql="update BOOK set ZT='可借' where BOOKID="+strBOOKID;</p><p> addBatch(sql);</p><p> int resu
87、lt[]=executeBatch();</p><p> closeStm();</p><p> return result;</p><p><b> }</b></p><p><b> 存儲(chǔ)分配</b></p><p><b> 借書文件:&l
88、t;/b></p><p><b> 罰款單:</b></p><p><b> 學(xué)生文件:</b></p><p><b> 023學(xué)生還書</b></p><p><b> 具體格式如下:</b></p><p>
89、<b> 功能流程圖</b></p><p><b> 需要說明的問題:</b></p><p> 顯示結(jié)果可直接在處理結(jié)果.jsp中利用javascript來實(shí)現(xiàn)顯示功能!</p><p> 處理要包含:對圖書狀態(tài)和借書文件表中信息的修改以及學(xué)生的欠款金額的計(jì)算,并更新Publish表。</p>&
90、lt;p><b> 功能描述</b></p><p><b> 功能類型:修改數(shù)據(jù)</b></p><p> 功能概述:完成學(xué)生的還書業(yè)務(wù)并計(jì)算學(xué)生的欠款信息</p><p><b> 前提業(yè)務(wù):管理模塊</b></p><p><b> 后繼業(yè)務(wù):無
91、</b></p><p><b> 功能約束:權(quán)限約束</b></p><p><b> 約束描述:</b></p><p> 操作權(quán)限:圖書館管理人員</p><p><b> 界面設(shè)計(jì)</b></p><p><b>
92、 基礎(chǔ)信息處理</b></p><p><b> 界面描述:</b></p><p><b> 數(shù)據(jù)描述</b></p><p> 對于還書業(yè)務(wù)的處理,實(shí)質(zhì)上與借書業(yè)務(wù)的實(shí)現(xiàn)基本上相同,只是調(diào)用了backBorrow(hash)來實(shí)現(xiàn)還書功能;</p><p> If(strEd
93、it.equals(“1”)){</p><p> Int intdel[]=bb.BackBorrow(hash);</p><p> If(intdel==null){</p><p> ifSuccess=false;</p><p><b> }else{</b></p><p>
94、 For(int i=0;i<intdel.length;i++){</p><p> If(intdel[i]!=1)</p><p> ifSuccess=false;</p><p><b> }</b></p><p><b> }</b></p><p&
95、gt;<b> }</b></p><p> If(!ifSuccess){</p><p> %><script>alert(“歸還操作失??!”);</script><%</p><p><b> }else{</b></p><p> %>&l
96、t;script>alert(“歸還操作成功!”);</script><%</p><p><b> }</b></p><p><b> }</b></p><p> 針對backBorrow(hash)算法如下:</p><p> public int[] bac
97、kBorrow(String TXM)</p><p><b> {</b></p><p> System.out.println("批量處理還書。。。。。");</p><p> String sql="";</p><p> String strBOOKID=ds.t
98、oString((String)toName("BOOK","TXM","BOOKID",TXM));</p><p> String strNow = ds.getDateTime();</p><p> strNow = strNow.substring(0,10);</p><p> creat
99、eStatement();</p><p> clearBatch();</p><p> sql="update JSWJB set ZT='"+strOne+"',DQSJ='"+strNow+"' where BOOKID="+strBOOKID+" and ZT='&q
100、uot;+strZero+"'";</p><p> System.out.println("sql1:"+sql);</p><p> addBatch(sql);</p><p> sql="update BOOK set ZT='可借' where BOOKID="+s
101、trBOOKID;</p><p> System.out.println("sql2:"+sql);</p><p> addBatch(sql);</p><p> int result[]=executeBatch();</p><p> closeStm();</p><p>
102、 return result;</p><p><b> }</b></p><p><b> 存儲(chǔ)分配</b></p><p><b> 借書文件:</b></p><p><b> 學(xué)生文件:</b></p><p>&
103、lt;b> 圖書目錄文件:</b></p><p><b> 罰款單;</b></p><p><b> 024圖書注銷</b></p><p><b> 具體格式如下:</b></p><p><b> 功能流程圖</b>&l
104、t;/p><p><b> 需要說明的問題:</b></p><p> 顯示結(jié)果可直接在處理結(jié)果.jsp中利用javascript來實(shí)現(xiàn)顯示功能!</p><p> 在處理圖書注銷的時(shí)候,為了便于以后的恢復(fù)操作,此刪除操作只在表中做一標(biāo)志,并不是真正的刪除。</p><p><b> 功能描述</b&
105、gt;</p><p><b> 功能描述:刪除數(shù)據(jù)</b></p><p><b> 功能概述:注銷圖書</b></p><p><b> 前提業(yè)務(wù):管理模塊</b></p><p><b> 后繼業(yè)務(wù):無</b></p><
106、p><b> 約束描述:</b></p><p> 操作權(quán)限:圖書館管理人員</p><p><b> 界面設(shè)計(jì)</b></p><p><b> 基礎(chǔ)信息處理</b></p><p><b> 動(dòng)作說明如下:</b></p>
107、<p><b> 界面描述:</b></p><p><b> 數(shù)據(jù)描述:</b></p><p> 對于圖書注銷業(yè)務(wù)的處理</p><p><b> 存儲(chǔ)分配</b></p><p><b> 圖書目錄文件:</b></p&g
108、t;<p> 025 基礎(chǔ)信息設(shè)置</p><p><b> 接口設(shè)計(jì)</b></p><p> 用來查詢一條數(shù)據(jù)的私有接口</p><p> 該方法有一個(gè)參數(shù),參數(shù)是一個(gè)字符串,表示要向數(shù)據(jù)庫發(fā)送一條SQL語句,這個(gè)SQL只是一個(gè)查詢語句,方法的返回植是一個(gè)Hashtable,在Hashtable中以鍵值對的方式表示了從
109、數(shù)據(jù)庫中選出了第一行記錄。用Hashtable中的get(“FieldName”)方法可以得到改行記錄的某一個(gè)記錄的值。</p><p> private Hashtable searchOneData(String sql) </p><p><b> {</b></p><p> Hashtable hash = new Hashta
110、ble();</p><p> ResultSet rs = selectRecord(sql);</p><p> Statement stmt = null;</p><p><b> try{</b></p><p><b> //取得列數(shù)和列名</b></p><
111、p> ResultSetMetaData rsmd = rs.getMetaData();</p><p> int cols = rsmd.getColumnCount();</p><p> if(rs.next())</p><p><b> {</b></p><p> for(int i=1;
112、i<=cols;i++)</p><p><b> {</b></p><p> String field= ds.toString(rsmd.getColumnName(i));String value = ds.toString(rs.getString(i));</p><p> hash.put(field,value)
113、;</p><p><b> }</b></p><p><b> }</b></p><p> }catch(Exception e){</p><p> System.out.println("運(yùn)行時(shí)出錯(cuò):"+e);</p><p><b
114、> }</b></p><p><b> finally{</b></p><p> if(rs!=null)try{ </p><p> stmt=rs.getStatement(); rs.close();</p><p><b> }</b></p>
115、<p> catch(Exception e){</p><p> System.out.println("關(guān)閉記錄集rs時(shí)出錯(cuò)"+e);</p><p><b> }</b></p><p> if(stmt!=null)</p><p><b> try{</b
116、></p><p> stmt.close();</p><p> }catch(Exception e){</p><p> System.out.println("關(guān)閉聲明時(shí)statement出錯(cuò)"+e);</p><p><b> }</b></p><p&
117、gt; return hash;</p><p><b> }</b></p><p><b> 增加記錄的公共接口</b></p><p> 該方法有一個(gè)參數(shù),是java.util.Hashtable類,在調(diào)用該方法前,先用和hashtable的put方法將字段名和該條記錄的值存入hashtable中,然后將這
118、個(gè)hashtable作為參數(shù)傳入insert方法中。在insert方法的最后,調(diào)用ParentBean中的insertRecord方法,insertRecord可以根據(jù)傳入的參數(shù)自動(dòng)的生成增加記錄的SQL語句并通過JDBC發(fā)送到數(shù)據(jù)庫</p><p> Public int insert(Hashtable hash){</p><p> IntintID=makeID(“Book
119、”,”BookID”,””,true);</p><p> Vector vect=new Vector();</p><p> Vect.add(“………….”);</p><p><b> ……………………</b></p><p> Return insertRecord(vect);</p>
120、<p><b> }</b></p><p><b> 刪除記錄的公共接口</b></p><p> 該方法有一個(gè)參數(shù)id,該參數(shù)表示的是book表中的ID字段,ID字段是這個(gè)表的主鍵,用這個(gè)主鍵可以檢索到表中的一條唯一的記錄,通過這個(gè)主鍵,delete方法可以生成一條SQL語句,刪除這一條記錄。</p><p
121、> public int delete(String id)</p><p><b> {</b></p><p> String sql="";</p><p> sql="delete from Book where BookID="+id;</p><p>
122、return deleteRecord(sql);</p><p><b> }</b></p><p><b> 查詢記錄的公共接口</b></p><p> Public Vector getData(String sqlwhere, int page){</p><p> String
123、 sql=””;</p><p> Sql=”select * from Book”;</p><p> If (!sqlwhere.equals(“”))</p><p> Sql+=sqlwhere;</p><p> Return getOnePage(sql,page,20);</p><p><
124、b> }</b></p><p><b> 修改記錄的接口</b></p><p> public int update(Hashtable hash)</p><p><b> {</b></p><p> Vector vect = new Vector();<
125、/p><p> vect.add("Book");</p><p> vect.add(addVector("Title",ds.toString((String)hash.get("TITLE")),"CHAR"));</p><p> vect.add(addVector(&quo
126、t;Author",ds.toString((String)hash.get("AUTHOR")),"CHAR"));</p><p> vect.add(addVector("ISBN",ds.toString((String)hash.get("ISBN")),"CHAR"));</p>
127、<p><b> ……………………</b></p><p> return updateRecord(vect);</p><p><b> }</b></p><p><b> 測試要點(diǎn)</b></p><p><b> 測試范圍</b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)
- 圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)方案
- 圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)方案
- 圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)說明
- 圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)說明
- 課程設(shè)計(jì)---圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)
- 軟件工程圖書管理系統(tǒng)-詳細(xì)設(shè)計(jì)
- 圖書管理系統(tǒng)圖書管理系統(tǒng)
- 校園圖書管理系統(tǒng)畢業(yè)論文
- 課程設(shè)計(jì)---圖書管理系統(tǒng)功能模塊的詳細(xì)設(shè)計(jì)
- 圖書管理系統(tǒng)指導(dǎo)書
- 圖書管理系統(tǒng)指導(dǎo)書
- 圖書管理系統(tǒng)指導(dǎo)書
- 圖書管理系統(tǒng)設(shè)計(jì).doc
- 圖書管理系統(tǒng)設(shè)計(jì).doc
- 圖書管理系統(tǒng)指導(dǎo)書
- 圖書管理系統(tǒng)指導(dǎo)書
- 圖書管理系統(tǒng)的設(shè)計(jì)
- 圖書管理系統(tǒng)設(shè)計(jì).doc
- 圖書管理系統(tǒng)
評論
0/150
提交評論