實(shí)驗(yàn)七 指導(dǎo)- JSP中使用數(shù)據(jù)庫_第1頁
實(shí)驗(yàn)七 指導(dǎo)- JSP中使用數(shù)據(jù)庫_第2頁
實(shí)驗(yàn)七 指導(dǎo)- JSP中使用數(shù)據(jù)庫_第3頁
實(shí)驗(yàn)七 指導(dǎo)- JSP中使用數(shù)據(jù)庫_第4頁
實(shí)驗(yàn)七 指導(dǎo)- JSP中使用數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章JSP中使用數(shù)據(jù)庫實(shí)驗(yàn)指導(dǎo)要求在webapps目錄下新建一個Web服務(wù)目錄:practice7。除特別要求外,實(shí)踐7中的實(shí)驗(yàn)所涉及的JSP頁面均保存在practice7中;Tag文件保存在practice7\WEB-INF\tags目錄中。實(shí)踐7中的實(shí)驗(yàn)中所用的數(shù)據(jù)庫為Student,其中的表為message表。在進(jìn)行實(shí)驗(yàn)之前首先完成下列任務(wù):使用MySQL創(chuàng)建一個數(shù)據(jù)庫Student。在數(shù)據(jù)庫中Student中創(chuàng)建名字為message的表,表的的各個字段及屬性見圖7-1。圖7-1message表在實(shí)踐7中,假設(shè)訪問MySQL數(shù)據(jù)庫的用戶名為root,該用戶的密碼也是root。實(shí)驗(yàn)1查詢記錄1.相關(guān)知識點(diǎn)本實(shí)驗(yàn)使用純JAVA驅(qū)動方式和數(shù)據(jù)庫建立連接,那么查詢數(shù)據(jù)庫中表的記錄的步驟是:與數(shù)據(jù)庫建立連接

Connectioncon=DriverManager.getConnection("jdbc:mysql://localhost:3306/Student","root","root");返回Statement對象

Statementsql=con.createStatement();向數(shù)據(jù)庫發(fā)送關(guān)于查詢記錄的SQL語句,返回查詢結(jié)果,即ResultSet對象

ResultSetrs=sql.executeQuery(查詢message表的SQL語句);2.實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)的目的是讓學(xué)生掌握使用JDBC查詢數(shù)據(jù)庫中表的記錄。3.實(shí)驗(yàn)要求編寫三個JSP頁面:inputCondition.jsp、byNumber.jsp和byName.jsp頁面。編寫兩個Tag文件:NumberCondtion.tag和NameConditon.tag。inputCondition.jsp的具體要求inputCondition.jsp頁面提供兩個表單。其中一個表單允許用戶輸入要查詢的學(xué)生的學(xué)號,即輸入message表中number字段的查詢條件,然后將查詢條件提交給要byNumber.jsp,另一個表單允許用戶輸入要查詢的學(xué)生的姓名,即輸入message表中name字段的查詢條件,然后將查詢條件提交給要byName.jspbyNumber.jsp的具體要求byNumber.jsp頁面首先獲得inputCondition.jsp頁面提交的關(guān)于number字段的查詢條件,然后使用Tag標(biāo)記調(diào)用Tag文件ByNumber.tag,并將number字段的查詢條件傳遞給ByNumber.tag。byName.jsp的具體要求byName.jsp頁面首先獲得inputCondition.jsp頁面提交的關(guān)于name字段的查詢條件,然后使用Tag標(biāo)記調(diào)用Tag文件ByName.tag,并將name字段的查詢條件傳遞給ByName.tag。。NumberCondtion.tag的具體要求NumberCondtion.tag文件使用attribute指令獲得byNumber.jsp頁面?zhèn)鬟f過來的number字段的查詢條件,然后和和數(shù)據(jù)庫建立連接、根據(jù)得到的查詢條件查詢message表。NumberCondtion.tag文件使用variable指令將查詢結(jié)果返回給byNumber.jsp頁面。NameConditone.tag的具體要求NameConditon.tag文件使用attribute指令獲得byName.jsp頁面?zhèn)鬟f過來的name字段的查詢條件,然后和和數(shù)據(jù)庫建立連接、根據(jù)得到的查詢條件查詢message表。NameConditon.tag文件使用variable指令將查詢結(jié)果返回給byName.jsp頁面。4.JSP頁面效果示例inputCondition.jsp(效果如圖7-2)圖7-2輸入查詢條件byNumber.jsp(效果如圖7-3)圖7-3根據(jù)學(xué)號查詢記錄byName.jsp(效果如圖7-4)圖7-4根據(jù)姓名查詢記錄5.參考代碼代碼僅供參考,學(xué)生可按著實(shí)驗(yàn)要求,參考本代碼編寫代碼。JSP頁面參考代碼inputCondition.jsp<%@pagecontentType="text/html;charset=GB2312"%><HTML><BODY><Fontsize=2><FORMaction="byNumber.jsp"Method="post">根據(jù)學(xué)號查詢<BR>輸入學(xué)號:<Inputtype=textname="number"><Inputtype=submitname="g"value="提交"></Form><FORMaction="byName.jsp"Method="post">根據(jù)姓名(模糊)查詢<BR>姓名含有<Inputtype=textname="name"size=5><Inputtype=submitvalue="提交"></Form></Font></BODY></HTML>byNumber.jsp<%@pagecontentType="text/html;charset=GB2312"%><%@taglibtagdir="/WEB-INF/tags"prefix="look"%><HTML><BODYbgcolor=cyan><Fontsize=2><%Stringnumber=request.getParameter("number");%><look:NumberConditionnumber="<%=number%>"/>根據(jù)學(xué)號<%=number%>查詢到的記錄:<BR><%=queryResultByNumber%></Font></BODY></HTML>byName.jsp<%@pagecontentType="text/html;charset=GB2312"%><%@taglibtagdir="/WEB-INF/tags"prefix="look"%><HTML><BODYbgcolor=pink><Fontsize=2><%Stringname=request.getParameter("name");bytebb[]=name.getBytes("iso-8859-1");name=newString(bb);%><look:NameConditionname="<%=name%>"/>姓名含有"<%=name%>"的記錄:<BR><%=queryResultByName%></Font></BODY></HTML>Tag文件參考代碼NumberCondition.tag<%@tagpageEncoding="GB2312"%><%@tagimport="java.sql.*"%><%@attributename="number"required="true"%><%@variablename-given="queryResultByNumber"scope="AT_END"%><%StringBufferresult;result=newStringBuffer();try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ClassNotFoundExceptione){out.print(e);}Connectioncon;Statementsql;ResultSetrs;intn=0;try{result.append("<tableborder=1>");con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Student","root","root");DatabaseMetaDatametadata=con.getMetaData();ResultSetrs1=metadata.getColumns(null,null,"message",null);int字段個數(shù)=0;result.append("<tr>");while(rs1.next()){字段個數(shù)++;StringclumnName=rs1.getString(4);result.append("<td>"+clumnName+"</td>");}result.append("</tr>");sql=con.createStatement();Stringcondition="SELECT*FROMmessageWherenumber='"+number+"'";rs=sql.executeQuery(condition);while(rs.next()){result.append("<tr>");for(intk=1;k<=字段個數(shù);k++){result.append("<td>"+rs.getString(k)+"</td>");}result.append("</tr>");}result.append("</table>");con.close();}catch(SQLExceptione){result.append(e);}jspContext.setAttribute("queryResultByNumber",newString(result));%>NameCondition.tag<%@tagpageEncoding="GB2312"%><%@tagimport="java.sql.*"%><%@attributename="name"required="true"%><%@variablename-given="queryResultByName"scope="AT_END"%><%StringBufferresult;result=newStringBuffer();try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ClassNotFoundExceptione){out.print(e);}Connectioncon;Statementsql;ResultSetrs;intn=0;try{result.append("<tableborder=1>");con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Student","root","root");DatabaseMetaDatametadata=con.getMetaData();ResultSetrs1=metadata.getColumns(null,null,"message",null);int字段個數(shù)=0;result.append("<tr>");while(rs1.next()){字段個數(shù)++;StringclumnName=rs1.getString(4);result.append("<td>"+clumnName+"</td>");}result.append("</tr>");sql=con.createStatement();Stringcondition="SELECT*FROMmessageWherenameLike'%"+name+"%'";rs=sql.executeQuery(condition);while(rs.next()){result.append("<tr>");for(intk=1;k<=字段個數(shù);k++){result.append("<td>"+rs.getString(k)+"</td>");}result.append("</tr>");}result.append("</table>");con.close();}catch(SQLExceptione){result.append(e);}jspContext.setAttribute("queryResultByName",newString(result));%>實(shí)驗(yàn)2更新記錄1.相關(guān)知識點(diǎn)本實(shí)驗(yàn)使用java驅(qū)動方式和數(shù)據(jù)庫建立連接,那么更新數(shù)據(jù)庫中表的記錄的步驟是:與數(shù)據(jù)庫建立連接

Connectioncon=DriverManager.getConnection("jdbc:mysql://localhost:3306/Student","root","root");返回Statement對象

Statementsql=con.createStatement();向數(shù)據(jù)庫發(fā)送關(guān)于更新記錄的SQL語句

intm=sql.executeUpdate(更新記錄的SQL語句);

更新成功m的值為1否則為0。2.實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)的目的是讓學(xué)生掌握使用JDBC更新數(shù)據(jù)庫中表的記錄。3.實(shí)驗(yàn)要求編寫兩個JSP頁面:inputNew.jsp和newResult.jsp頁面。編寫一個NewRecord.tag文件:NewRecord.tag。另外,本實(shí)驗(yàn)2還用到實(shí)驗(yàn)1中的NameCondition.tag文件。1.inputNew.jsp的具體要求inputNew.jsp頁面提供一個表單,該表單允許用戶某個學(xué)生的新的姓名、出生日期和email提交到newResult.jsp頁面。2.newResult.jsp的具體要求newResult.jsp頁面首先獲得inputNew.jsp頁面提交的關(guān)于name字段、birthday字段和email字段的更新條件,然后使用Tag標(biāo)記調(diào)用Tag文件NewRecord.tag更新記錄的字段值。NewRecord.tag的具體要求NewRecord.tag文件使用attribute指令獲得newResult.jsp頁面?zhèn)鬟f過來的name字段、birthday字段和email字段的更新條件,然后和和數(shù)據(jù)庫建立連接、更新數(shù)據(jù)庫表中的相應(yīng)記錄。4.JSP頁面效果示例inputNew.jsp(效果如圖7-5)圖7-5輸入更新條件newResult.jsp(效果如圖7-6)圖7-6更新后的記錄5.參考代碼代碼僅供參考,學(xué)生可按著實(shí)驗(yàn)要求,參考本代碼編寫代碼。JSP頁面參考代碼inputNew.jsp<%@pagecontentType="text/html;charset=GB2312"%><%@taglibtagdir="/WEB-INF/tags"prefix="inquire"%><HTML><BODY><FONTsize=2><FORMaction="newResult.jsp"method=post><tableborder=1><tr><td>輸入要更新的學(xué)生的學(xué)號:</td><td><Inputtype="text"name="number"></td></tr><tr><td>輸入新的姓名:</td><td><Inputtype="text"name="name"></td></tr><tr><td>輸入新的出生日期:</td><td><Inputtype="text"name="birthday"></td></tr><tr><td>輸入新的email:</td><td><Inputtype="text"name="email"></td></tr></table><BR><Inputtype="submit"name="b"value="提交更新"><BR>message表更新前的數(shù)據(jù)記錄是:<inquire:NameConditionname=""/><BR><%=queryResultByName%></Font></BODY></HTML>newResult.jsp<%@pagecontentType="text/html;charset=GB2312"%><%@taglibtagdir="/WEB-INF/tags"prefix="renew"%><%@taglibtagdir="/WEB-INF/tags"prefix="inquire"%><HTML><BODYbgcolor=cyan><Fontsize=2><%Stringnu=request.getParameter("number");Stringna=request.getParameter("name");Stringbd=request.getParameter("birthday");Stringem=request.getParameter("email");bytebb[]=na.getBytes("iso-8859-1");na=newString(bb);%><renew:NewRecordnumber="<%=nu%>"name="<%=na%>"birthday="<%=bd%>"email="<%=em%>"/>message表更新后的數(shù)據(jù)記錄是:<inquire:NameConditionname=""/><BR><%=queryResultByName%></Font></BODY></HTML>Tag文件參考代碼NewRecord.tag<%@tagpageEncoding="GB2312"%><%@tagimport="java.sql.*"%><%@attributename="number"required="true"%><%@attributename="name"required="true"%><%@attributename="birthday"required="true"%><%@attributename="email"required="true"%><%Stringcondition1="UPDATEmessageSETname='"+name+"'WHEREnumber="+"'"+number+"'",condition2="UPDATEmessageSETbirthday='"+birthday+"'WHEREnumber="+"'"+number+"'",condition3="UPDATEmessageSETemail='"+email+"'WHEREnumber="+"'"+number+"'";try{Class.forName(“org.gjt.mm.mysql.Driver”);}catch(ClassNotFoundExceptione){out.print(e);}Connectioncon;Statementsql;ResultSetrs;try{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Student","root","root");sql=con.createStatement();sql.executeUpdate(condition1);sql.executeUpdate(condition2);sql.executeUpdate(condition3);con.close();}catch(Exceptione){out.print(""+e);}%>實(shí)驗(yàn)3刪除記錄1.相關(guān)知識點(diǎn)本實(shí)驗(yàn)使用JAVA驅(qū)動方式和數(shù)據(jù)庫建立連接,那么刪除數(shù)據(jù)庫中表的記錄的步驟是:與數(shù)據(jù)庫建立連接

Connectioncon=DriverManager.getConnection("jdbc:mysql://localhost:3306/Student","root","root");返回Statement對象

Statementsql=con.createStatement();向數(shù)據(jù)庫發(fā)送關(guān)于刪除記錄的SQL語句

intm=sql.executeUpdate(刪除記錄的SQL語句);

刪除成功m的值為1否則為0。2.實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)的目的是讓學(xué)生掌握使用JDBC刪除數(shù)據(jù)庫中表的記錄。3.實(shí)驗(yàn)要求編寫兩個JSP頁面:inputNumber.jsp和delete.jsp頁面。編寫一個Tag文件:DelRecord.tag。另外,本實(shí)驗(yàn)2還用到實(shí)驗(yàn)1中的NameCondition.tag文件。1.inputNumber.jsp的具體要求inputNew.jsp頁面提供一個表單,該表單允許用戶某個學(xué)生的學(xué)號提交到delete.jsp頁面。2.delete.jsp的具體要求delete.jsp頁面首先獲得inputNumber.jsp頁面提交的關(guān)于number字段,即學(xué)生的學(xué)號,然后使用Tag標(biāo)記調(diào)用Tag文件DelRecord.tag刪除數(shù)據(jù)庫表中相應(yīng)的記錄。DelRecord.tag的具體要求DelRecord.tag文件使用attribute指令獲得delete.jsp頁面?zhèn)鬟f過來的numbere字段的刪除條件,然后和和數(shù)據(jù)庫建立連接、刪除數(shù)據(jù)庫表中的相應(yīng)記錄。4.JSP頁面效果示例inputNumber.jsp(效果如圖7-7)圖7-5輸入刪除條件delete.jsp(效果如圖7-8)圖7-8刪除某記錄5.參考代碼代碼僅供參考,學(xué)生可按著實(shí)驗(yàn)要求,參考本代碼編寫代碼。JSP頁面參考代碼inputNumber.jsp<%@pagecontentType="text/html;charset=GB2312"%><%@taglibtagdir="/WEB-INF/tags"prefix="inquire"%><HTML><BODY><FONTsize=2><FORMaction="delete.jsp"method=post>刪除記錄:<br>輸入被刪除的記錄的學(xué)號:<Inputtype="text"name="number"size=8><Inputtype="submit"name="b"value="提交"><br>messag

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論