




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、web軟件技術(shù)實(shí)驗(yàn)報(bào)告(9 )學(xué)號:10123568姓名:李智斌班級:計(jì)123成績:實(shí)驗(yàn)名稱:JDBC訪問數(shù)據(jù)庫實(shí)驗(yàn)地點(diǎn):信息樓215所使用的工具軟件及環(huán)境:tomcat , MySQL , navicat, JCreator、實(shí)驗(yàn)?zāi)康模?. 掌握使用傳統(tǒng)的方法訪問數(shù)據(jù)庫;2. 掌握使用數(shù)據(jù)源的方法訪問數(shù)據(jù)庫。二、實(shí)驗(yàn)內(nèi)容:(一)使用傳統(tǒng)方法通過JSP頁面訪問數(shù)據(jù)庫建立了一個(gè)名為 bookstore的數(shù)據(jù)庫,在其中建立books【步驟1】創(chuàng)建數(shù)據(jù)庫。假設(shè)在MySQL 表,代碼如下:CREATE TABLE books (-書號-書名-作者-出版社-價(jià)格bookid character(5) P
2、RIMARY KEY,title text,author character vary in g(20), publisher character vary ing (40), price real);向books表中插入幾條記錄,代碼如下:INSERT INTO books V ALUES(204,Head First Servlets & JSP, Bryan Basham,中國電力出版社,98.00);INSERT INTO books V ALUES(201, Servlets 與 JSP 核心教程,Hall Marty,清華大學(xué)出版社,45);INSERT INTO books V
3、ALUES(202, Tomcat與Java Web開發(fā)技術(shù)祥解,孫衛(wèi)琴,機(jī)械工業(yè)出版社,45);INSERT INTO books V ALUES(203, JSP應(yīng)用開發(fā)技術(shù),柳永坡,人民郵電出版社,52);INSERT INTO books V ALUES(205, J2EE 1.4 編程指南,Spielman Sue,電子工業(yè)出版社,68);注意:需要將數(shù)據(jù)庫的JDBC驅(qū)動程序安裝到應(yīng)用程序的WEB-INFlib目錄中。【步驟2】使用下面JSP頁面displayBooks.jsp訪問books表中的數(shù)據(jù)。 Database Access Test%try Class.forName(c
4、om.mysql.jdbc.Driver );Stri ng dburl = jdbc:mysql:/localhost:3306/bookstore ;Connection conn = DriverMa nager.getC onnection( dburl, bookstore, bookstore);Stateme nt stmt = conn. createStateme nt();String sql = SELECT * FROM books;ResultSet rs = stmt.executeQuery(sql); out.pri ntl n();out.println( 書
5、號 書名 作者 價(jià)格 ): while (rs. next()out.pri ntl n( + rs.getStri ng(1)+ rs.getStri ng(2) + rs.getStri ng(3)+ rs.getStri ng(5)+);out.pri ntl n( );rs.close();stmt.close();conn. close();catch (Excepti on e) out.pri ntl n( e.getMessage();%結(jié)果如下:書號料名作者價(jià)格204First Servlet & JSPBryan Enwha98201|ServletJSPtl?i!Mart
6、y Hall45202 Tomcat與Jaq Wtb開發(fā)技術(shù)詳解和衛(wèi)琴203JSP憲全學(xué)習(xí)手冊張銀越69205Java EE 5開發(fā)指南Kevin Mukhar49(二)通過數(shù)據(jù)源訪問數(shù)據(jù)庫注意:需要將數(shù)據(jù)庫的JDBC驅(qū)動程序安裝到Tomcat安裝目錄的lib目錄中,并重新啟動Tomcat 服務(wù)器。【步驟1】建立局部數(shù)據(jù)源在 Web應(yīng)用程序中建立一個(gè)META-INF目錄,在其中建立一個(gè)context.xml文件,內(nèi)容如下:【步驟2】使用下面的JSP頁面displayBooks.jsp訪問數(shù)據(jù)庫 DataSource Test%try Context context = new lnitialC
7、ontext();DataSource ds = (DataSource) context.lookup(java:comp/env/jdbc/bookDS); Connection conn = ds.getConnection();Stateme nt stmt = conn. createStateme nt();ResultSet rs = stmt.executeQuery(SELECT * FROM books);out.pri ntl n();out.println( 書號 書名 作者 價(jià)格 ); while (rs. next()out.pri ntl n( + rs.getS
8、tri ng(1)+ rs.getStri ng(2)+ rs.getStri ng(3)+ rs.getStri ng(5)+);out.pri ntl n( );rs.close();stmt.close();conn. close();catch (Excepti on e) out.pri ntl n( e.getMessage();%結(jié)果如下:書號書名柞者ft梧204Head First Servlet & JSPBryan Basham垃201ServletKarty Hall45202frcmcatJava Web開發(fā)技術(shù)詳解45203JSP完全學(xué)習(xí)宇冊I張銀鶴1$9 205Ja
9、va EL 5幵發(fā)指南Kevin lukhar49(三)綜合應(yīng)用。本實(shí)驗(yàn)采用 MVC設(shè)計(jì)模式,通過數(shù)據(jù)源和 DAO對象訪問數(shù)據(jù)庫。其中JavaBeans 實(shí)現(xiàn)模型,訪問數(shù)據(jù)庫,Servlet實(shí)現(xiàn)控制器,JSP頁面實(shí)現(xiàn)視圖。* 模型包括2個(gè)JavaBean: BookBean用于存放圖書信息,BookDAO用于訪問數(shù)據(jù)庫。* 控制器包括2個(gè)Servlet: BookQueryServlet根據(jù)請求參數(shù)查詢圖書信息、 BookInsertServlet 用來向數(shù)據(jù)庫中插入數(shù)據(jù)。* 視圖包括4個(gè)JSP頁面:bookQuery.jsp顯示查詢頁面、bookInsert.jsp顯示插入頁面、displa
10、y.jsp顯示查詢結(jié)果頁面和errorPage.jsp顯示錯(cuò)誤頁面。【步驟1】存放圖書信息的JavaBeans代碼BookBean.java,它也是一個(gè)傳輸對象。package com.bea ns;import java.io.*;public class BookBea n impleme nts Serializableprivate String bookid = nuII;private String title = null;private String author = nuII;private String publisher = null;private float pric
11、e = 0.0F;public BookBea n()public BookBea n( Stri ng bookId, String author,String title, String publisher, float price) this.bookid = bookId;this.title = title;this.author = author; this.publisher = publisher; this.price = price;public String getBookid() retur n this.bookid; public Stri ng getTitle(
12、) return title; public String getAuthor() return this.author; public float getPrice() return price; public String getPublisher () return publisher; public void setBookid(Stri ng bookid) this.bookid=bookid; public void setTitle(String title)this.title=title; public void setAuthor(Stri ng author) this
13、.author = author; public void setPrice(float price)this.price=price; public void setPublisher (String publisher) this.publisher = publisher;【步驟2】下面的BookDAO是一個(gè)簡單的JavaBeans,它實(shí)現(xiàn)數(shù)據(jù)庫的訪問。package com.bea ns;import java.sql.*;import javax.sql.*;import javax. nami ng.*;import java.util.ArrayList;import com.b
14、ea ns.BookBea n;public class BookDAOprivate static In itialC on text con text= nu II;private DataSource dataSource = nu II;public BookDAO()tryif(con text = n ull)con text = new In itialC on text();dataSource = (DataSource)c on text .lo okup(java:comp/e nv/jdbc/bookDS);catch(Nam in gExcepti on e2)/根據(jù)
15、書號查詢圖書信息public BookBea n searchBook(Stri ng bookid)Connection conn = nu II;PreparedStateme nt pstmt = n ull;ResultSet rst = null;BookBea nbook = new BookBea n();tryconn = dataSource.getC onn ecti on();pstmt = conn .prepareStateme nt(SELECT * FROM books WHERE bookid=?); pstmt.setStri ng(1,bookid);rst
16、 = pstmt.executeQuery();if(rst. next()book.setBookid(rst.getStri ng(bookid);book.setTitle(rst.getStri ng(title); book.setAuthor(rst.getStri ng(author); book.setPublisher(rst.getStri ng(publisher); book.setPrice(rst.getFloat(price); retur n book;elsereturnnu II;catch(SQLExcepti on se)return n ull;fin
17、 allytryconn. close();catch(SQLExcepti on se)/插入一本圖書記錄public boolea n in sertBook(BookBea n book)Conn ecti on conn = n ull;PreparedStateme nt pstmt = n ull;tryconn = dataSource.getC onnection();pstmt = conn. prepareStateme nt(INSERT INTO books V ALUES(?,?,?,?,?);pstmt.setStri ng(1,book.getBookid();p
18、stmt.setStri ng(2,book.getTitle();pstmt.setStri ng(3,book.getAuthor();pstmt.setStri ng(4,book.getPublisher(); pstmt.setFloat(3,book.getPrice();pstmt.executeUpdate();pstmt.close();return true;catch(SQLExcepti on se)return false;fin allytryconn. close();catch(SQLException se) 【步驟3】下面的JSP頁面bookQuery.js
19、p實(shí)現(xiàn)根據(jù)書號查詢圖書信息 Book Query請輸入一個(gè)書號:vform action= bookquery.do method = post【步驟4】下面的JSP頁面book In sert.jsp實(shí)現(xiàn)向數(shù)據(jù)庫中插入數(shù)據(jù) Book In sert請輸入圖書信息: 書號 書名 作者 出版社 單價(jià) 【步驟5】顯示查詢結(jié)果的 JSP頁面display.jsp : 書號: 書名: 作者: 出版社: 價(jià)格:【步驟6】錯(cuò)誤頁面errorPage.jsp代碼如下: 對不起,您查的圖書不存在!【步驟7】下面的Servlet實(shí)現(xiàn)從請求參數(shù)獲得書號,然后從數(shù)據(jù)庫中查找該書,最后根據(jù)查詢 結(jié)果將請求轉(zhuǎn)發(fā)到顯示頁
20、面(display.jsp)或錯(cuò)誤頁面(errorPage.jsp)。package com.c on trol;import java.io.*;import java.sql.*;import javax.servlet.*:import javax.servlet.http.*;import com.bea ns.BookBea n;import com.bea ns.BookDAO;public class BookQueryServlet exte nds HttpServletpublic void doPost(HttpServletRequest request,HttpSer
21、vletResp onse resp on se)throws ServletExcepti on ,IOExcepti onString bookid = request.getParameter(bookid);BookDAO bookdao = new BookDAO();BookBea n book = bookdao.searchBook(bookid);if(book!=null)request.getSession().setAttribute(book, book);RequestDispatcher view = request.getRequestDispatcher(/d
22、isplay.jsp); view.forward(request, resp on se);elseRequestDispatcher view = request.getRequestDispatcher(/errorPage.jsp); view.forward(request, resp on se);【步驟8】下面的Servlet實(shí)現(xiàn)向數(shù)據(jù)庫插入數(shù)據(jù),并將控制請求的轉(zhuǎn)發(fā)到bookInsert.jsp頁面。package com.c on trol;import java.io.*;import java.sql.*;import javax.servlet.*;import java
23、x.servlet.http.*;import com.bea ns.BookBea n;import com.bea ns.BookDAO;public class Book In sertServlet exte nds HttpServletpublic void doPost(HttpServletRequest request,HttpServletResp onse resp on se)throws ServletExcepti on ,IOExcepti onrequest.setCharacterE ncodi ng(gb2312);String message = n ul
24、l;BookBea n book = new BookBea n( request.getParameter(bookid),request.getParameter(title), request.getParameter(author),request.getParameter(publisher), Float.parseFloat(request.getParameter(price);BookDAO bookdao = new BookDAO();boolea n success = bookdao.i nsertBook(book);if(success)message =成功插入一條記錄。;elsemessage =插入
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)小蜂年度中國肉類生產(chǎn)及分布數(shù)據(jù)分析報(bào)告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺SDN優(yōu)化與5G通信技術(shù)在工業(yè)互聯(lián)網(wǎng)中的應(yīng)用報(bào)告
- 2025年農(nóng)業(yè)灌溉用水高效利用與水資源優(yōu)化配置報(bào)告
- 2025年綠色供應(yīng)鏈管理在調(diào)味品制造業(yè)的應(yīng)用與推廣研究報(bào)告
- 智能礦山無人作業(yè)系統(tǒng)在煤炭開采中的應(yīng)用研究與發(fā)展報(bào)告
- 2025年線下演出市場復(fù)蘇后的經(jīng)濟(jì)效益與社會影響研究報(bào)告
- 基于區(qū)塊鏈技術(shù)的2025年零售企業(yè)數(shù)字化供應(yīng)鏈協(xié)同安全報(bào)告
- 06年司法局上半年工作總結(jié)
- 2025年裝配式建筑部品部件生產(chǎn)流程優(yōu)化與標(biāo)準(zhǔn)化創(chuàng)新案例分析報(bào)告
- 核電項(xiàng)目日常管理制度
- 民法典案例解讀PPT
- 安全生產(chǎn)知識應(yīng)知應(yīng)會
- 質(zhì) 量 管 理 體 系 認(rèn) 證審核報(bào)告(模板)
- 腫瘤科新護(hù)士入科培訓(xùn)和護(hù)理常規(guī)
- 體育器材采購設(shè)備清單
- 第4章 頜位(雙語)
- 二手車鑒定評估報(bào)告書最終
- 電影場記表(雙機(jī)位)
- 塔吊負(fù)荷試驗(yàn)方案
- 電子商務(wù)專業(yè)“產(chǎn)教融合、五雙并行”人才培養(yǎng) 模式的實(shí)踐研究課題論文開題結(jié)題中期研究報(bào)告(經(jīng)驗(yàn)交流)
- 購買社區(qū)基本公共養(yǎng)老、青少年活動服務(wù)實(shí)施方案
評論
0/150
提交評論