2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  校園圖書管理系統(tǒng)詳細設計書</p><p><b>  引言</b></p><p><b>  編寫目的</b></p><p>  圖書管理系統(tǒng)詳細設計是設計的第二個階段,這個階段的主要任務是在圖書管理系統(tǒng)概要設計書基礎上,對概要設計中產生的功能模塊進行過程描述,設計功能模塊的內部細節(jié),包括算法和

2、詳細數(shù)據(jù)結構,為編寫源代碼提供必要的說明。</p><p>  概要設計解決了軟件系統(tǒng)總體結構設計的問題,包括整個軟件系統(tǒng)的結構、模塊劃分、模塊功能和模塊間的聯(lián)系等。詳細設計則要解決如何實現(xiàn)各個模塊的內部功能,即模塊設計。具體的說,模塊設計就是要為已經產生的圖書管理各子系統(tǒng)設計詳細的算法。但這并不等同于系統(tǒng)實現(xiàn)階段用具體的語言編碼,它只是對實現(xiàn)細節(jié)作精確的描述,這樣編碼階段就可以將詳細設計中對功能實現(xiàn)的描述,直接

3、翻譯、轉化為用某種程序設計語言書寫的程序。</p><p><b>  項目背景</b></p><p>  根據(jù)XX學校希望能夠充分利用現(xiàn)代科技來提高圖書管理的效率,在原有的辦公系統(tǒng)基礎上進行擴展,將一些可以用計算機來管理的都進行計算機化,使得圖書館管理人員工作更加方便,工作效率也更加的高。</p><p><b>  定義<

4、/b></p><p>  ?Mysql:數(shù)據(jù)庫管理軟件</p><p>  ?DBMS:數(shù)據(jù)庫管理系統(tǒng)</p><p>  ?Windows 2000/2003/XP:運行環(huán)境</p><p>  ?JSP :軟件開發(fā)語言</p><p>  ?Myeclipse :開發(fā)工具</p><p&

5、gt;<b>  總體設計</b></p><p><b>  需求概述</b></p><p>  按照需求分析文檔中的規(guī)格要求,使用條形碼掃描器進書、借書、還書,使得信息傳遞準確、流暢。同時,系統(tǒng)最大限度地實現(xiàn)易安裝,易維護性,易操作性,運行穩(wěn)定,安全可靠。</p><p><b>  軟件結構</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學生信息查詢模塊</p><p>  021入庫管理模塊</p><p>  022學生借書模塊</p><p>  023學生還書模塊</p><p>  024圖書注銷模塊</p><p>  040基礎信息設置</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>  錄入項檢測使用javascript實現(xiàn)(各項必須非空)</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è)務:無</b></p><p>  后繼業(yè)務:02 (管理模塊)</p><p><b>  功能約束:權限約束</b></p><p><b>  約束描述:</b

11、></p><p>  操作權限:圖書館管理員</p><p><b>  界面設計</b></p><p><b>  基礎信息處理 </b></p><p><b>  動作說明:</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的內部邏輯</p><p><b>  登陸數(shù)據(jù)處理:</

13、b></p><p>  關鍵點兩點: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ù)據(jù)庫ip</p><p>  String dbip = "127.0.0.1";</p><p>  //設置你的數(shù)據(jù)庫用戶名和密碼:</p><p>  String use = "root";</p><p&g

16、t;  String pass = "860409";</p><p>  //設置您的數(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ù)操作相關數(shù)據(jù)與該數(shù)據(jù)庫相連;</p><p>  記錄登陸信息及信息處理:</p><p>  當用戶點擊“登陸”按鈕之后,數(shù)據(jù)將提交到登陸數(shù)據(jù)處理.jsp頁面。 取得帳號密碼這兩個從頁面?zhèn)魅氲闹?,然后跟?shù)據(jù)庫當中管理員表中的賬號和密碼比較。如果正確的話,在J

21、SP的SESSION中存入一個標記屬性,表示當前已經有管理員登陸了。處理完畢后,跳轉到管理頁面,如果失敗,則提示登陸失敗,并重新進入到登陸頁面。</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>  //錯誤碼</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中存如一個標記屬性,表示當前已經有管理員登陸了</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="錯誤的用戶名和密碼";</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í)顚懞媚愕膫€人信息!");</p><p><b>  }</b></p><p><b>  %></b></p><p>

28、<b>  存儲分配</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è)務時,需要在當前的頁面顯示;并且在管理頁面內,默認顯示圖書查詢頁面。</p><p><b>  功能描述</b></p><p><b>  功能類型:其他<

30、/b></p><p>  功能概述:總體歸納圖書館管理功能</p><p>  前提業(yè)務:登陸模塊(01)</p><p>  后續(xù)業(yè)務:021,022,023,024,03</p><p><b>  功能約束:權限約束</b></p><p><b>  約束描述:</

31、b></p><p>  操作權限:圖書館管理人員</p><p><b>  界面設計</b></p><p><b>  基本信息處理</b></p><p><b>  動作說明如下:</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>  錄入項檢測使用javascript來實現(xiàn)(各項非空);</p><p>  操作權限:面向所有用戶</p><p><b>  功能描述</b></p><p>

34、<b>  功能類型:查詢數(shù)據(jù)</b></p><p>  功能概述:顯示查詢結果</p><p><b>  前提業(yè)務:無</b></p><p><b>  后繼業(yè)務:</b></p><p>  功能約束:沒有約束;</p><p><b&g

35、t;  約束描述:</b></p><p>  操作權限:面向所有用戶</p><p><b>  界面設計</b></p><p><b>  基礎信息處理</b></p><p><b>  下表是動作說明:</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>  圖書信息查詢的輸出項</p><p><b>  模

37、塊內部邏輯</b></p><p>  Search.jsp用于顯示界面的內容,給用戶顯示一個查詢接口</p><p>  Lib_query.jsp用來調度所有的頁面,它根據(jù)傳入的參數(shù)來決定包含哪一個jsp頁面來顯示內容;</p><p>  在lib_query.jsp頁面中,</p><p>  它根據(jù)傳入的參數(shù)來決定包含哪

38、一個jsp頁面來顯示內容;則可以通過<jsp:include page=”<%= ……%>”/>,利用jsp:include標簽來被動態(tài)加載發(fā)送到相應頁面;</p><p>  chuli.jsp 用來處理數(shù)據(jù)查詢和顯示查詢到的結果列表。</p><p>  在這個頁面中,數(shù)據(jù)要求是以列表的形式顯示到輸出頁面。</p><p>  由于查詢到

39、的結果可能過多,所以采用分頁形式顯示;</p><p>  對于分頁功能的內部邏輯:</p><p>  View.jsp用來顯示查詢到的圖書的各項屬性。</p><p><b>  存儲分配</b></p><p>  圖書目錄文件(Book):</p><p>  借書文件表(JSWJB):&

40、lt;/p><p>  032學生信息查詢模塊</p><p><b>  具體格式如下:</b></p><p><b>  功能流程圖</b></p><p><b>  功能流程圖如下圖:</b></p><p><b>  需要說明的問題:

41、</b></p><p>  錄入項檢測使用javascript來實現(xiàn)(各項非空);</p><p>  操作權限:面向所有用戶</p><p><b>  功能描述</b></p><p><b>  功能類型:查詢數(shù)據(jù)</b></p><p>  功能概述:顯

42、示查詢結果</p><p><b>  前提業(yè)務:無</b></p><p><b>  后繼業(yè)務:</b></p><p>  功能約束:沒有約束;</p><p><b>  約束描述:</b></p><p>  操作權限:面向所有用戶</p

43、><p><b>  界面設計</b></p><p><b>  基礎信息處理</b></p><p><b>  下表是動作說明:</b></p><p><b>  數(shù)據(jù)要求</b></p><p><b>  功能類型

44、:數(shù)據(jù)查詢</b></p><p><b>  數(shù)據(jù)描述:</b></p><p>  頁面顯示字段見下表:</p><p>  學生信息查詢的輸出項</p><p><b>  模塊內部邏輯</b></p><p>  Search.jsp用于顯示界面的內容,給

45、用戶顯示一個查詢接口</p><p>  Index.jsp用來調度所有的頁面,它根據(jù)傳入的參數(shù)來決定包含哪一個jsp頁面來顯示內容;</p><p>  在index.jsp頁面中,</p><p>  它根據(jù)傳入的參數(shù)來決定包含哪一個jsp頁面來顯示內容;則可以通過<jsp:include page=”<%= ……%>”/>,利用jsp:

46、include標簽來被動態(tài)加載發(fā)送到相應頁面;</p><p>  List.jsp 用來顯示查詢到的結果列表。</p><p>  View.jsp用來顯示查詢到的學生的各項屬性。</p><p>  ★★注釋:學生信息查詢模塊與圖書查詢模塊屬于同一類功能。實現(xiàn)可以完全類似。</p><p><b>  存儲分配</b>

47、;</p><p><b>  學生文件:</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ù)庫操作的時候要驗證權限</p><p>  錄入項檢驗用javascript來實現(xiàn)(選項非空)</p><p><b>  功能描述</b></p><p><b>  功能類型:添加數(shù)據(jù)</b></p><p

49、>  功能描述:增加圖書目錄文件中的圖書信息。</p><p><b>  前提業(yè)務:管理模塊</b></p><p><b>  后繼業(yè)務:無</b></p><p><b>  功能約束:權限約束</b></p><p><b>  約束描述:無</b

50、></p><p>  操作權限:圖書館管理人員</p><p><b>  界面設計</b></p><p><b>  基礎信息處理</b></p><p><b>  動作說明如下表:</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ù)處理內部邏輯:</p><p>  圖書入庫采用表格進行多行添加:</p><p>  利用j

52、avaBean來編寫一個BookBean來管理圖書。</p><p>  在BookBean類中增加記錄的公共接口來實現(xiàn)入庫數(shù)據(jù)的添加。</p><p><b>  具體的類設計如下:</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>  。。。。。。。。。。。。。。。。。。。。//還有其他選項,同上格式

56、。</p><p>  return insertRecord(vect);</p><p><b>  }</b></p><p>  該方法有一個參數(shù),是java.util.Hashtable類,在調用該方法前,先用和hashtable的put方法將字段名和該條記錄的值存入hashtable中,然后將這個hashtable作為參數(shù)傳入ins

57、ert方法中。</p><p>  在insert方法的最后,調用ParentBean中的insertRecord方法,insertRecord可以根據(jù)傳入的參數(shù)自動的生成增加記錄的SQL語句并通過JDBC發(fā)送到數(shù)據(jù)庫。</p><p>  正對ParentBean類:主要是實現(xiàn)對數(shù)據(jù)庫的各種操作:如與數(shù)據(jù)庫的連接,對數(shù)據(jù)庫的操作。</p><p><b>

58、;  存儲分配</b></p><p><b>  圖書目錄文件:</b></p><p><b>  入庫表:</b></p><p><b>  注:</b></p><p><b>  022學生借書模塊</b></p>&

59、lt;p><b>  具體格式如下:</b></p><p><b>  功能流程圖</b></p><p><b>  需要說明的問題:</b></p><p>  在進行借書,修改數(shù)據(jù)信息時,應先查詢學生的欠款信息,如欠款超額,則利用javascript實現(xiàn)信息提示,拒絕借書,如無超額,則接

60、受借書。</p><p>  為便于以后的恢復操作,此修改操作只在表中做一個標志,并不是真正的對其修改;</p><p><b>  功能描述</b></p><p>  功能類型:修改數(shù)據(jù)和查詢數(shù)據(jù)</p><p>  功能描述:更新學生借書文件,圖書目錄文件等中的信息;</p><p><

61、;b>  前提業(yè)務:管理模塊</b></p><p><b>  后繼業(yè)務:無</b></p><p><b>  功能約束:權限約束</b></p><p><b>  約束描述:</b></p><p>  操作權限:圖書館管理人員</p>

62、<p><b>  界面設計</b></p><p><b>  基礎信息處理</b></p><p><b>  動作說明如下:</b></p><p><b>  數(shù)據(jù)描述</b></p><p>  功能類型:修改數(shù)據(jù)和查詢數(shù)據(jù)</p

63、><p><b>  界面設計:</b></p><p><b>  數(shù)據(jù)字段描述:</b></p><p>  圖書借閱數(shù)據(jù)處理內部邏輯</p><p>  If(strEdit.equals(“1”)){</p><p>  If(學生超額|學生不存在){</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>  首先要驗證學生信息是否存在和學生的欠款是否超額,也就是說學生是否可以借書,圖書是否在館等,在 確定合法之后調用bb.addBorrow(hash)來完成借閱流程。流程其實就是對幾個表進行增改的操作。</p><p>  關于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"));//借閱時間</p><p>

73、  String strXSID = "";//學生ID</p><p>  String strBOOKID = "";//圖書ID</p><p>  String strDQSJ = "";//到期時間</p><p>  String strXJCS = "";//續(xù)借次數(shù)<

74、;/p><p>  //根據(jù)學生證件號取的學生ID</p><p>  //根據(jù)學生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、于取消按鈕事件,由于要實現(xiàn)取消借閱,所以需要調用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>  存儲分配</b></p><p><b>  借書文件:&l

88、t;/b></p><p><b>  罰款單:</b></p><p><b>  學生文件:</b></p><p><b>  023學生還書</b></p><p><b>  具體格式如下:</b></p><p>

89、<b>  功能流程圖</b></p><p><b>  需要說明的問題:</b></p><p>  顯示結果可直接在處理結果.jsp中利用javascript來實現(xiàn)顯示功能!</p><p>  處理要包含:對圖書狀態(tài)和借書文件表中信息的修改以及學生的欠款金額的計算,并更新Publish表。</p>&

90、lt;p><b>  功能描述</b></p><p><b>  功能類型:修改數(shù)據(jù)</b></p><p>  功能概述:完成學生的還書業(yè)務并計算學生的欠款信息</p><p><b>  前提業(yè)務:管理模塊</b></p><p><b>  后繼業(yè)務:無

91、</b></p><p><b>  功能約束:權限約束</b></p><p><b>  約束描述:</b></p><p>  操作權限:圖書館管理人員</p><p><b>  界面設計</b></p><p><b> 

92、 基礎信息處理</b></p><p><b>  界面描述:</b></p><p><b>  數(shù)據(jù)描述</b></p><p>  對于還書業(yè)務的處理,實質上與借書業(yè)務的實現(xiàn)基本上相同,只是調用了backBorrow(hash)來實現(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>  存儲分配</b></p><p><b>  借書文件:</b></p><p><b>  學生文件:</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>  顯示結果可直接在處理結果.jsp中利用javascript來實現(xiàn)顯示功能!</p><p>  在處理圖書注銷的時候,為了便于以后的恢復操作,此刪除操作只在表中做一標志,并不是真正的刪除。</p><p><b>  功能描述</b&

105、gt;</p><p><b>  功能描述:刪除數(shù)據(jù)</b></p><p><b>  功能概述:注銷圖書</b></p><p><b>  前提業(yè)務:管理模塊</b></p><p><b>  后繼業(yè)務:無</b></p><

106、p><b>  約束描述:</b></p><p>  操作權限:圖書館管理人員</p><p><b>  界面設計</b></p><p><b>  基礎信息處理</b></p><p><b>  動作說明如下:</b></p>

107、<p><b>  界面描述:</b></p><p><b>  數(shù)據(jù)描述:</b></p><p>  對于圖書注銷業(yè)務的處理</p><p><b>  存儲分配</b></p><p><b>  圖書目錄文件:</b></p&g

108、t;<p>  025 基礎信息設置</p><p><b>  接口設計</b></p><p>  用來查詢一條數(shù)據(jù)的私有接口</p><p>  該方法有一個參數(shù),參數(shù)是一個字符串,表示要向數(shù)據(jù)庫發(fā)送一條SQL語句,這個SQL只是一個查詢語句,方法的返回植是一個Hashtable,在Hashtable中以鍵值對的方式表示了從

109、數(shù)據(jù)庫中選出了第一行記錄。用Hashtable中的get(“FieldName”)方法可以得到改行記錄的某一個記錄的值。</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("運行時出錯:"+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("關閉記錄集rs時出錯"+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("關閉聲明時statement出錯"+e);</p><p><b>  }</b></p><p&

117、gt;  return hash;</p><p><b>  }</b></p><p><b>  增加記錄的公共接口</b></p><p>  該方法有一個參數(shù),是java.util.Hashtable類,在調用該方法前,先用和hashtable的put方法將字段名和該條記錄的值存入hashtable中,然后將這

118、個hashtable作為參數(shù)傳入insert方法中。在insert方法的最后,調用ParentBean中的insertRecord方法,insertRecord可以根據(jù)傳入的參數(shù)自動的生成增加記錄的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>  該方法有一個參數(shù)id,該參數(shù)表示的是book表中的ID字段,ID字段是這個表的主鍵,用這個主鍵可以檢索到表中的一條唯一的記錄,通過這個主鍵,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>  測試要點</b></p><p><b>  測試范圍</b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論