版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)學(xué)與計(jì)算機(jī)學(xué)院</b></p><p><b> 課程設(shè)計(jì)說明書</b></p><p> 課 程 名 稱: JAVA/數(shù)據(jù)庫(kù)/網(wǎng)絡(luò)綜合課程設(shè)計(jì) </p><p> 課 程 代 碼: </p><p>
2、 題 目: 商品書籍管理系統(tǒng) </p><p> 年級(jí)/專業(yè)/班 2010級(jí)網(wǎng)絡(luò)安全1班 </p><p> 學(xué) 生 姓 名: </p><p> 學(xué) 號(hào): </p>
3、<p> 開 始 時(shí) 間: 2012 年 12 月 25 日</p><p> 完 成 時(shí) 間: 2013 年 01 月 16 日</p><p><b> 課程設(shè)計(jì)成績(jī):</b></p><p> 指導(dǎo)教師簽名: 年 月 </p&g
4、t;<p><b> 目 錄 </b></p><p><b> 1 引 言1</b></p><p> 1.1問題的提出1</p><p><b> 1.2務(wù)與分析1</b></p><p> 2.程序的主要功能2</p>
5、<p><b> 2.1添加功能2</b></p><p><b> 2.2刪除功能2</b></p><p> 2.3刪除全部書籍信息2</p><p><b> 2.4顯示功能2</b></p><p><b> 2.5查找功能
6、2</b></p><p><b> 2.6修改功能2</b></p><p> 3、程序運(yùn)行平臺(tái)3</p><p><b> 4 總體設(shè)計(jì)4</b></p><p><b> 5 程序說明4</b></p><p><
7、b> 6 模塊分析5</b></p><p> 6.1 添加模塊5</p><p> 6.2 顯示模塊7</p><p> 6.3 修改模塊10</p><p> 6.4 查找模塊11</p><p> 6.5 刪除模塊13</p><p> 6.6
8、清空模塊14</p><p><b> 7 系統(tǒng)測(cè)試15</b></p><p><b> 8 結(jié)論21</b></p><p><b> 1 引 言 </b></p><p><b> 問題的提出</b></p><p
9、> 商品書籍管理系統(tǒng)是一些售書單位或網(wǎng)站不可缺少的一部分,每天都存在書籍的大量流動(dòng),怎樣方便、快捷的管理圖書尤其重要。所以商品書籍管理系統(tǒng)應(yīng)該為管理者提供各類書籍信息和快速的操作手段。但一直以來人們使用傳統(tǒng)人工的方式管理書籍、期刊等,這種管理方式存在許多缺點(diǎn),如:效率低、保密性差、容易出錯(cuò)、不便于查找、更新和維護(hù)數(shù)據(jù)?;谶@個(gè)問題,有必要建立書籍管理系統(tǒng),能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書信息。使得書籍管理工作規(guī)范化、系統(tǒng)化、
10、程序化,避免書籍管理的隨意性,提高信息處理速度和準(zhǔn)確性。</p><p><b> 1.2任務(wù)與分析</b></p><p><b> 本課題主要的任務(wù):</b></p><p> 用jsp+serlvet+sql模擬商品書籍管理系統(tǒng),以jsp動(dòng)態(tài)網(wǎng)頁形式顯示數(shù)據(jù)庫(kù)中的數(shù)據(jù),并完成對(duì)這些數(shù)據(jù)的增、刪、改等基本操作,同
11、時(shí)將數(shù)據(jù)更新會(huì)數(shù)據(jù)庫(kù)。</p><p><b> 對(duì)本課題的分析:</b></p><p> 1、設(shè)計(jì)簡(jiǎn)單、大方、合理的網(wǎng)頁以及每個(gè)頁面各自實(shí)現(xiàn)的功能</p><p> 2、實(shí)現(xiàn)jsp和servlet之間的跳轉(zhuǎn)以及信息的傳遞</p><p> 3、連接數(shù)據(jù)庫(kù),獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù)并顯示在頁面的是上</p>
12、;<p> 4、獲取管理者錄入的書籍信息,并添加到數(shù)據(jù)庫(kù)</p><p> 5、獲取管理者刪除某本或某些書籍的信息,并將刪除后的數(shù)據(jù)更新回?cái)?shù)據(jù)庫(kù)</p><p> 6、獲取管理者查詢某本或某些書籍的信息,并將結(jié)果顯示在頁面上</p><p> 7、獲取管理者輸入修改某本或某些書籍的信息,并將修 改成功后的數(shù)據(jù)更新回?cái)?shù)據(jù)庫(kù)</p>
13、<p><b> 程序的主要功能</b></p><p><b> 2.1添加功能</b></p><p> 實(shí)現(xiàn)將書籍的基本信息添加到數(shù)據(jù)庫(kù),包括書的編號(hào)(主鍵)、種類、書名、作者、出版社、價(jià)格、總冊(cè)數(shù)。不論添加成功或失敗都會(huì)提示對(duì)話框,并在數(shù)據(jù)庫(kù)中根據(jù)主鍵的唯一性和不能為空兩個(gè)特點(diǎn)創(chuàng)建了觸發(fā)器;為了防止錄入非法字符,我們還在
14、客服端進(jìn)行了攔截。 </p><p><b> 2.2刪除功能</b></p><p> 點(diǎn)擊刪除按鈕將操作人員選中的復(fù)選框的對(duì)應(yīng)信息從數(shù)據(jù)庫(kù)中刪除</p><p><b> 刪除全部書籍信息</b></p><p> 選中書籍的所有種類,點(diǎn)擊刪除按鈕,將清空數(shù)據(jù)庫(kù)中所有書籍信息。</
15、p><p><b> 2.4顯示功能</b></p><p> 實(shí)現(xiàn)將數(shù)據(jù)庫(kù)中的書籍的主要信息顯示在頁面上,包括書的編號(hào)、種類、書名、作者、出版社、價(jià)格、總冊(cè)數(shù)。只用點(diǎn)擊對(duì)應(yīng)書籍種類的鏈接,就能將該種類的圖書信息顯示出來,該功能是用存儲(chǔ)過程實(shí)現(xiàn)的,且為使頁面看起來更加美觀,我們還實(shí)現(xiàn)了登錄進(jìn)入顯示界面就默認(rèn)顯示某種圖書信息功能。</p><p>
16、;<b> 2.5查找功能</b></p><p> 只要在復(fù)選框中選中要顯示的書籍信息,點(diǎn)擊查詢按鈕就能將對(duì)應(yīng)書籍的詳細(xì)信息顯示出來,如果未查詢到將會(huì)彈出提示信息。</p><p><b> 2.6修改功能</b></p><p> 實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中已存在的書籍信息進(jìn)行修改。修改書籍信息有兩種方式即修改單條記錄和多
17、條記錄。無論修改成功與否都會(huì)彈出提示對(duì)話框,如果要修改的圖書不存在,則會(huì)提示操作員“未找到要修改的圖書”;且在客服端對(duì)非法字符的錄入進(jìn)行了攔截操作。3、程序運(yùn)行平臺(tái)</p><p><b> 1、開發(fā)工具:</b></p><p> Eclipse4.2、Apache Tomcatv7.0、jdk1.7</p><p><b>
18、 2、具體操作如下:</b></p><p><b> ?。?)創(chuàng)建項(xiàng)目</b></p><p> 打開Eclipse->文件->新建->動(dòng)態(tài)web項(xiàng)目->在項(xiàng)目名欄輸入項(xiàng)目名稱 ->單擊下一步(完成)。</p><p> ?。?)為項(xiàng)目添加相應(yīng)的源文件</p><p> 添
19、加javaBean:</p><p> 點(diǎn)擊項(xiàng)目名下的JavaRescoures->src->右鍵單擊選擇新建->包->輸入包名(包名一般取為com.xx) </p><p> 右鍵單擊建好的包->新建->類->輸入類名->完成</p><p> 添加servlet:</p><p>
20、 點(diǎn)擊項(xiàng)目名下的JavaRescoures->src->右鍵單擊選擇新建->包->輸入包名(包名一般取為com.xx) </p><p> 右鍵單擊建好的包->新建->servlet->輸入名稱->完成</p><p><b> 添加jsp:</b></p><p> 點(diǎn)擊項(xiàng)目名下的Web
21、Content->WEB INF->右鍵單擊選擇新建->jsp文件->輸入名稱->選中新建jsp文件(xhtml)->完成</p><p><b> 添加CSS:</b></p><p> 點(diǎn)擊項(xiàng)目名下的WebContent->WEB INF->右鍵單擊選擇新建->其他->選擇WEB下的CSS文件->
22、;輸入文件名->完成</p><p> 添加javascript:</p><p> i、點(diǎn)擊項(xiàng)目名下的WebContent->WEB INF->右鍵單擊選擇新建->其他->選擇javascript下的javascript原文件->輸入名稱->完成</p><p> 再編譯,鏈接,執(zhí)行等,此部分可參照實(shí)驗(yàn)指導(dǎo)書前面的內(nèi)
23、容寫。</p><p><b> 4 總體設(shè)計(jì)</b></p><p> 圖4.1 系統(tǒng)總體框架圖</p><p><b> 5 程序說明</b></p><p><b> Book類的聲明</b></p><p> public class
24、Book {</p><p> int number;//書的編號(hào)</p><p> String kinds;//書的種類</p><p> String bname;//書的名字</p><p> String editor;//書的作者</p><p> String press;//書的出版社<
25、/p><p> int price;//書的單價(jià)</p><p> int cnumber;//書的總冊(cè)數(shù)</p><p> public int getNumber() {return number;}//設(shè)置編號(hào)</p><p> public void setNumber(int number) {this.number = num
26、ber;}//獲取編號(hào)</p><p> public String getKinds() {return kinds;}//設(shè)置種類</p><p> public void setKinds(String kinds) {this.kinds = kinds;}//獲取種類</p><p> public String getBname() {return
27、 bname;}//設(shè)置書名</p><p> public void setBname(String bname) {this.bname = bname;}//獲取書名</p><p> public String getEditor() {return editor;}//設(shè)置作者</p><p> public void setEditor(Strin
28、g editor) {this.editor = editor;}//獲取作者</p><p> public String getPress() {return press;}//設(shè)置出版社</p><p> public void setPress(String press) {this.press = press;}//獲取出版社</p><p> pu
29、blic int getPrice() {return price;}//設(shè)置單價(jià)</p><p> public void setPrice(int price) {this.price = price;}//獲取單件</p><p> public int getCnumber() {return cnumber;}//設(shè)置總冊(cè)數(shù)</p><p> pub
30、lic void setCnumber(int cnumber) {this.cnumber = cnumber;}//獲取總冊(cè)數(shù)</p><p> DBExecute類的聲明</p><p> public class DBExecute {</p><p> public Connection getConnection() throws Exceptio
31、n//連接數(shù)據(jù)庫(kù)</p><p> {String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; </p><p> String url="jdbc:sqlserver://localhost;integratedSecurity=true;databaseName=xsgl;"
32、; </p><p> try{Class.forName(driver);</p><p> return DriverManager.getConnection(url);}</p><p> catch(SQLException e){throw e;}}</p><p> public ResultSet CallProc(C
33、onnection con,String procname,String word) throws SQLException//調(diào)用存儲(chǔ)過程</p><p> {CallableStatement st=con.prepareCall("{call "+procname+"(?)}");</p><p> st.setString(1, word
34、);</p><p> st.execute();</p><p> ResultSet rs=st.getResultSet();</p><p> return rs;}}</p><p><b> 6 模塊分析</b></p><p><b> 6.1 添加模塊</
35、b></p><p> 設(shè)計(jì)思想:進(jìn)入操作頁面后,點(diǎn)擊添加按鈕 ,在彈出的注冊(cè)書籍信息表中輸入詳細(xì)的圖書信息,點(diǎn)擊保存按鈕,如果要添加的書籍信息已在數(shù)據(jù)庫(kù)中存在,則彈出消息框提示操作人員該書已存在,反之則提示添加成功,為了防止操作員錄入非法數(shù)據(jù),將在客服端進(jìn)行攔截,并提示輸入的數(shù)據(jù)非法,請(qǐng)重新輸入</p><p><b> 流程:</b></p>
36、<p><b> 關(guān)鍵代碼:</b></p><p> (1)獲取operate.jsp傳過來的數(shù)據(jù)。</p><p> 如:String zl=request.getParameter("zla");</p><p> Int bh=Integer.parseInt(request.getParame
37、ter("bha"));</p><p> (2)連接數(shù)據(jù)庫(kù)并用SQL語句進(jìn)行添加操作。</p><p> String url="jdbc:sqlserver://localhost;integratedSecurity=true;databaseName=xsgl;" ;</p><p> Connection co
38、n;</p><p><b> try{ </b></p><p> Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); </p><p> con=DriverManager.getConnection(url); </p>
39、<p> String sql = "select * from book where bid=? "; </p><p> PreparedStatement pstmt = con.prepareStatement(sql); </p><p> pstmt.setInt(1, bh);</p><p> ResultS
40、et rs=pstmt.executeQuery(); </p><p> if(rs.next()){//當(dāng)添加的書已在數(shù)據(jù)庫(kù)中存在</p><p> PrintWriter out = response.getWriter();</p><p> String message="This book is exist !";<
41、;/p><p> out.print("<script language='javascript'>alert('"</p><p> + message + "');</script>");</p><p> out.print("<script la
42、nguage='javascript'>window.location.href='operate.jsp';</script>");}</p><p> else{ //要添加的圖書在數(shù)據(jù)庫(kù)中不存在,就添加該本圖書sql="insertintobook(bid,bkind,bname,beditor,bpress,bprice,bnum)
43、 values(?,?,?,?,?,?,?)";//添加圖書信息的SQL語句</p><p> pstmt = con.prepareStatement(sql); </p><p> pstmt.setInt( 1, bh);</p><p> pstmt.setString( 2, zl);</p><p> pstm
44、t.setString(3,sm);</p><p> pstmt.setString(4, zz);</p><p> pstmt.setString( 5, cbs);</p><p> pstmt.setInt( 6, jg);</p><p> pstmt.setInt(7, zcs); </p><p&
45、gt; int k=pstmt.executeUpdate(); </p><p> PrintWriter out = response.getWriter();</p><p> String message="ok!";</p><p> out.print("<script language='javasc
46、ript'>alert('"</p><p> + message + "');</script>");</p><p> out.print("<script language='javascript'>window.location.href='operate.js
47、p';</script>");</p><p> System.out.println("添加圖書的信息成功!");</p><p> System.out.println(k);</p><p> rs.close();</p><p> pstmt.close();</p&g
48、t;<p> con.close();}}</p><p> catch(Exception e){</p><p> e.printStackTrace();}</p><p><b> 6.2 顯示模塊</b></p><p> 設(shè)計(jì)思想:登錄成功后進(jìn)入顯示界面,默認(rèn)顯示文學(xué)類書籍的信息; 并
49、在顯示界面點(diǎn)擊相應(yīng)的鏈接即可查看對(duì)應(yīng)種類的書籍信息。</p><p><b> 流程圖:</b></p><p><b> 關(guān)鍵代碼:</b></p><p> 在Login.jsp中檢查輸入的用戶名和密碼是否正確:</p><p> function check()</p>
50、<p> { var user=document.form1.user.value;</p><p> var password=document.form1.pass.value;</p><p> if(user=="admin"&&password=="123")</p><p> {
51、return true;}</p><p> else{ alert("請(qǐng)輸入正確的用戶名或密碼!");</p><p> return false;}}</p><p> 在Operate.java的doPost()中根據(jù)獲取的圖書的種類響應(yīng)相應(yīng)的操作:</p><p> String kind=request.
52、getParameter( "kind");</p><p> System.out.println(kind);</p><p> ArrayList<Book> al;</p><p> switch(kind){</p><p> case "wenxue":</p&g
53、t;<p> al=listAll("文學(xué)");</p><p> request.setAttribute("alist", al);</p><p> request.getRequestDispatcher("/list.jsp").forward(request, response);</p>
54、;<p> break; }//還有顯示七種圖書的操作同上</p><p> 在listAll()函數(shù)中調(diào)用了已定義的存儲(chǔ)過程:</p><p> ArrayList<Book> listAll(String s)</p><p> {Connection con=null;</p><p> DBExe
55、cute db=new DBExecute();//自定義的類DBExecute</p><p> String procname="p";</p><p> String word=s;</p><p> ArrayList<Book> al=new ArrayList<Book>();</p>&l
56、t;p><b> try{</b></p><p> con=db.getConnection();//連接數(shù)據(jù)庫(kù)</p><p> ResultSet rs=db.CallProc(con, procname, word);//調(diào)用存儲(chǔ)過程</p><p> if(rs.next()){//查詢?cè)摲N類的書存在 </p>
57、;<p> while(rs.next()){//把查詢結(jié)果加入到列表當(dāng)中</p><p> Book u=new Book();</p><p> u.setNumber(rs.getInt(1));</p><p> u.setKinds(rs.getString( 2));</p><p> u.setBname
58、(rs.getString(3));</p><p> u.setEditor(rs.getString(4));</p><p> u.setPress( rs.getString(5));</p><p> u.setPrice(rs.getInt(6));</p><p> u.setCnumber(rs.getInt(7));
59、</p><p> al.add(u); }} </p><p> else//查詢的該種類的書不存在</p><p> System.out.println("沒有該種類的書!");</p><p> rs.close();</p><p> con.close();}</p>
60、;<p> catch(Exception e)</p><p> {e.printStackTrace();}</p><p> return al;</p><p><b> 6.3 修改模塊</b></p><p> 設(shè)計(jì)思想:修改方式分為兩類:?jiǎn)螚l數(shù)據(jù)修改和多條數(shù)據(jù)修改;在相應(yīng)的修改表中輸
61、入書籍修改信息(單條數(shù)據(jù)修改需輸入圖書的詳細(xì)信息),點(diǎn)擊保存后,無論修改成功與否都會(huì)彈出提示框,為防止非法數(shù)據(jù)的錄入,將在客服端進(jìn)行攔截。</p><p><b> 流程圖:</b></p><p><b> 關(guān)鍵代碼:</b></p><p> ?。?)檢查單行修改的圖書信息:</p><p>
62、; function check1()</p><p> {if (!isNaN(document.getElementById("bhu").value)&&!isNaN(document.getElementById("jgu").value)&&!isNaN(document.getElementById("zcsu&q
63、uot;).value)&& document.getElementById("zlu").value!=""&&document.getElementById("smu").value!=""&&document.getElementById("zzu").value!="&
64、quot;&&document.getElementById("cbsu").value!="")</p><p> {return true;}</p><p> else{alert("請(qǐng)正確輸入修改信息!");</p><p> return false;} }</p>
65、;<p> (2)檢查多行數(shù)據(jù)的修改信息:</p><p> function check2()</p><p> {if(document.getElementById("zl2").value!=""&& !isNaN(document.getElementById("jg2").value
66、)||document.getElementById("zz2").value!=""&&!isNaN(document.getElementById("jg2").value))</p><p> {return true;}</p><p> else{window.alert("種類項(xiàng)和作者項(xiàng)
67、只能填其中一項(xiàng)?。蛻舳耍?quot;);</p><p> return false; }}</p><p> (3)在Update.java的doPost()中選擇是多行修改還是單行修改:</p><p> String operate=request.getParameter( "operate");</p><p
68、> if(operate.equals("danh"))//選擇的是單行修改</p><p> {listAll(request,response);}</p><p> else if(operate.equals("duoh"))//選擇的是多行修改</p><p> {listAll1(request,re
69、sponse);}</p><p><b> 關(guān)鍵的SQL語句:</b></p><p> 單行修改:String sql="update book set bkind="+zl1+" , bname="+sm1+" , beditor="+zz1+" , bpress="+cbs1+
70、" , bprice=? , bnum=? where bid=?";</p><p> 多行修改:sql="update book set bprice=? where bkind="+zl1+"";</p><p><b> 6.4 查找模塊</b></p><p> 設(shè)計(jì)思
71、想:查詢分為單條數(shù)據(jù)查詢和多條數(shù)據(jù)查詢,只要用戶在操作界面輸入了要查找圖書的編號(hào),如果存在則在頁面上顯示對(duì)應(yīng)編號(hào)的書籍信息,否則提示用戶未查找到(單條數(shù)據(jù)查詢)。如果沒有輸入圖書的編號(hào),就會(huì)查詢選中的復(fù)選框?qū)?yīng)的書籍信息,只要填了價(jià)格區(qū)間,查詢結(jié)果就將顯示在該價(jià)格區(qū)間內(nèi)選中的圖書信息,否則只顯示查找選中的圖書信息。(多條數(shù)據(jù)查詢)</p><p><b> 流程圖:</b></p&g
72、t;<p><b> 是否</b></p><p><b> 是否是</b></p><p><b> 關(guān)鍵代碼:</b></p><p> (1)在Select.java的dopost()中實(shí)現(xiàn)查詢圖書的功能:</p><p> String[]
73、 values1=request.getParameterValues( "checkselect1");</p><p> //獲取values2和values3的方法同獲取values1的方法相同</p><p> String price1=request.getParameter( "price1"); </p>
74、<p> String id=request.getParameter( "id");</p><p> if(id.isEmpty()){//沒有輸入圖書的編號(hào)</p><p> if(values1==null&&values2==null&&values3==null) {</p><p>
75、 request.getRequestDispatcher("/operate.jsp").forward(request, response); }</p><p> else{//選擇有查詢條件</p><p> ArrayList<Book> al;</p><p> al=listAll(values1,values2,
76、values3,price1,price2);</p><p> request.setAttribute("alist", al);</p><p> request.getRequestDispatcher("/operate.jsp").forward(request, response); }}</p><p>&
77、lt;b> else {</b></p><p> list1(request,response);}}//實(shí)現(xiàn)根據(jù)圖書的編號(hào)查詢圖書</p><p> stAll()實(shí)現(xiàn)按勾選的條件查詢:</p><p> String str1="";</p><p> if(s1!=null){</
78、p><p> str1+="'"+s1[0];</p><p> for(int i=1;i<s1.length-1;i++){</p><p> str1+="','"+s1[i];}</p><p> str1+="','"+s1
79、[s1.length-1]+"'";}</p><p> 根據(jù)是否填有價(jià)格區(qū)間選擇查詢操作:</p><p> if(price1.isEmpty()||price2.isEmpty())//價(jià)格區(qū)間沒有填完整</p><p> {//只查詢勾選了條件的圖書</p><p> sql = "sel
80、ect * from book where bpress in("+str2+") and beditor in("+str3+")";}</p><p> else{//在勾選了條件的圖書的基礎(chǔ)上而且在指定價(jià)格區(qū)間的圖書</p><p> sql = "select * from book where bpress in
81、("+str2+") and beditor in("+str3+") and bprice between ? and ?";}</p><p><b> 6.5 刪除模塊</b></p><p> 設(shè)計(jì)思想:只要用戶輸入圖書的編號(hào),就會(huì)刪除該編號(hào)的圖書信息,否則刪除符合勾選條件的圖書,如果在價(jià)格區(qū)間中填入了數(shù)值
82、就將該價(jià)格區(qū)間內(nèi)符合勾選條件的圖書刪除。 </p><p><b> 流程圖:</b></p><p><b> 關(guān)鍵代碼:</b></p><p> 在Delete.java的doPost()中實(shí)現(xiàn)刪除操作:</p><p> (1)獲取operate.jsp中的數(shù)據(jù):</p>
83、<p> String[] values1=request.getParameterValues( "checkselect1");</p><p> String price1=request.getParameter( "price1"); </p><p> String id=req
84、uest.getParameter( "id");</p><p> (2)對(duì)用戶做的操作作相應(yīng)處理:</p><p> if(id.isEmpty()){//沒有輸入書的編號(hào)</p><p> if(values1==null&&values2==null&&values3==null) {</p&g
85、t;<p> request.getRequestDispatcher("/operate.jsp").forward(request, response); }</p><p> else{//勾選了要?jiǎng)h除的書</p><p> ArrayList<Book> al;</p><p> al=listAll(v
86、alues1,values2,values3,price1,price2);</p><p> request.setAttribute("alist", al);</p><p> request.getRequestDispatcher("/operate.jsp").forward(request, response); }}</p&
87、gt;<p> else{//輸入了要?jiǎng)h除的書的編號(hào)</p><p> list1(request,response); }}//根據(jù)書的編號(hào)刪除該本書</p><p> (3)按勾選條件刪除圖書</p><p> if(price1.isEmpty()||price2.isEmpty()){</p><p> sql
88、 = "delete from book where bpress in("+str2+") and beditor in("+str3+")";}</p><p> else{sql = "delete from book where bpress in("+str2+") and beditor in("
89、+str3+") and bprice between ? and ?"; }}}</p><p><b> 6.6 清空模塊</b></p><p> 設(shè)計(jì)思想:將所有種類的圖書選中,則清空數(shù)據(jù)庫(kù)中所有的記錄,否則刪除部分書籍信息。 </p><p><b> 流程圖:</b></p>
90、;<p><b> 是否</b></p><p> (1)實(shí)現(xiàn)清空所有圖書信息的SQL語句:</p><p> sql = "delete from book where bpress in("+str2+");</p><p><b> 7 系統(tǒng)測(cè)試</b><
91、/p><p> 1、登錄界面:只要登錄名和密碼輸入正確,點(diǎn)擊登錄按鈕就能進(jìn)入顯示界面,如果輸入有誤,則彈出提示信息“請(qǐng)輸入正確的用戶名或密碼”</p><p> 如圖7.1 登錄失敗</p><p> 2、顯示界面:用于顯示數(shù)據(jù)庫(kù)中各類書籍的詳細(xì)信息,只要點(diǎn)擊相應(yīng)書籍種類的鏈接,就能將該類書籍信息顯示在頁面上,默認(rèn)顯示文學(xué)類的書籍信息,且點(diǎn)擊“點(diǎn)擊進(jìn)入操作頁面”圖
92、標(biāo)則轉(zhuǎn)到操作界面</p><p> 如圖7.2登錄成功進(jìn)入顯示界面(默認(rèn)顯示文學(xué))</p><p> 如圖7.2.1點(diǎn)擊相應(yīng)書籍種類鏈接(圖點(diǎn)擊的是綜合性圖書)顯示的信息</p><p> 3、操作界面:使用復(fù)選框、文本框以及按鈕,實(shí)現(xiàn)對(duì)書籍的添加、查詢、刪除、修改,當(dāng)彈出消息提示框時(shí),點(diǎn)擊消息提示框的確定按鈕,則返回操作界面</p><p
93、> 如圖7.3點(diǎn)擊添加在注冊(cè)表中輸入要添加的圖書信息且添加成功</p><p> 如圖7.3.1在注冊(cè)表中輸入非法字符點(diǎn)擊保存的效果圖</p><p> 如圖7.3.2插入的圖書已存在時(shí)點(diǎn)擊保存的效果圖</p><p> 如圖7.3.3選中復(fù)選框的值(該圖選中的是文學(xué))點(diǎn)擊查詢按鈕的效果圖</p><p> 如圖7.3.4選中
94、多項(xiàng)并輸入相應(yīng)價(jià)格顯示的效果圖</p><p> 如圖7.3.5按編號(hào)查詢的效果圖(該圖查詢的是編號(hào)為1書籍)</p><p> 如圖7.3.6刪除編號(hào)為778的書籍信息的效果圖</p><p> 如圖7.3.7再一次刪除編號(hào)為778的書籍信息的效果圖</p><p> 如圖7.3.8單擊修改在單行修改表中輸入修改信息點(diǎn)擊保存的效果圖
95、</p><p> 圖7.3.9在多行修改表中輸入修改信息點(diǎn)擊保存的效果圖</p><p> 如圖7.3.10在修改表(該圖以單行修改為例)中輸入非法字符的效果圖</p><p> 如圖7.3.11當(dāng)要修改的書籍不存在時(shí)點(diǎn)擊保存后的效果</p><p><b> 8 結(jié)論</b></p><p
96、><b> 任務(wù)的完成情況</b></p><p> 本次課程設(shè)計(jì)的任務(wù)基本上按要求完成,主要是用jsp實(shí)現(xiàn)了網(wǎng)頁的設(shè)計(jì)以及與servlet之間的信息傳送;在serlvet中連接數(shù)據(jù)庫(kù)并用TSQL語句完成了對(duì)數(shù)據(jù)庫(kù)的查詢、添加、刪除、修改等操作;其特點(diǎn)是讓管理員操作起來方便、簡(jiǎn)單,只需點(diǎn)擊相應(yīng)網(wǎng)頁上相應(yīng)的按鈕或鏈接就可以快速地完成對(duì)數(shù)據(jù)庫(kù)中書籍信息的各種操作,再加上自然美觀的網(wǎng)頁界
97、面,讓使用該系統(tǒng)的人不會(huì)感到枯燥無味。但此次課程設(shè)計(jì)存在一些問題,主要是在查詢并顯示數(shù)據(jù)庫(kù)中的信息時(shí),由于數(shù)據(jù)量比較大,不方便管理員查閱數(shù)據(jù),為解決這個(gè)問題應(yīng)以分頁的形式顯示數(shù)據(jù),但在設(shè)計(jì)過程中并沒有實(shí)現(xiàn)此功能。目前能夠想到的解決方案是在顯示頁面和操作頁面添加超鏈接(第一頁、上頁、下頁等),規(guī)定每頁顯示的多少條記錄,用TSQL語句查詢出數(shù)據(jù)庫(kù)中總共的行數(shù),除以每頁的記錄數(shù)就得到總共需要分多少頁。</p><p>
98、 此次課程設(shè)計(jì)的心得、體會(huì)</p><p> 為了完成本次課程設(shè)計(jì),我付出了很大的努力,花了很大一部分的時(shí)間和精力,才算是按要求基本做好了。在設(shè)計(jì)和構(gòu)思方面遇到過很多問題,通過查閱資料和尋求同學(xué)幫助后,所有的困難和疑問都一一得到了解決。本次課程設(shè)計(jì)讓我對(duì)JSP編程技術(shù)以及數(shù)據(jù)庫(kù)操作有了更深層次的理解,曾在該門課程學(xué)習(xí)上不懂的問題也在課程設(shè)計(jì)過程中得到解決,同時(shí)為下學(xué)期J2EE的學(xué)習(xí)打下了良好的基礎(chǔ),當(dāng)然編程水
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 書籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- vb課程設(shè)計(jì)-書籍管理系統(tǒng)
- jsp課程設(shè)計(jì)報(bào)告---jsp學(xué)生成績(jī)管理系統(tǒng)
- java課程設(shè)計(jì)-jsp(新聞管理系統(tǒng))
- jsp課程設(shè)計(jì)--圖書管理系統(tǒng)
- jsp圖書管理系統(tǒng)課程設(shè)計(jì)
- 圖書管理系統(tǒng)--jsp課程設(shè)計(jì)報(bào)告
- jsp課程設(shè)計(jì)--職工信息管理系統(tǒng)
- jsp課程設(shè)計(jì)---班級(jí)信息管理系統(tǒng)
- jsp課程設(shè)計(jì)《圖書館管理系統(tǒng)》
- 圖書館書籍管理系統(tǒng)課程設(shè)計(jì)
- jsp通訊簿管理系統(tǒng)-課程設(shè)計(jì)
- 基于 jsp的酒店管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---商品管理系統(tǒng)
- 商品銷售管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--商品銷售管理系統(tǒng)
- oracle課程設(shè)計(jì)--圖書館書籍管理系統(tǒng)
- jsp課程設(shè)計(jì)---網(wǎng)上購(gòu)物系統(tǒng)
- jsp課程設(shè)計(jì)---基于jsp的新聞發(fā)布系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---個(gè)人書籍管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論