第7章下 在JSP中使用數(shù)據(jù)庫(kù)(MySQL版)_第1頁(yè)
第7章下 在JSP中使用數(shù)據(jù)庫(kù)(MySQL版)_第2頁(yè)
第7章下 在JSP中使用數(shù)據(jù)庫(kù)(MySQL版)_第3頁(yè)
第7章下 在JSP中使用數(shù)據(jù)庫(kù)(MySQL版)_第4頁(yè)
第7章下 在JSP中使用數(shù)據(jù)庫(kù)(MySQL版)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課堂作業(yè)安裝MySql數(shù)據(jù)庫(kù),啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)。編寫(xiě)Java程序,通過(guò)純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序連接Oracle查詢test數(shù)據(jù)庫(kù)dept表中的所有信息課堂練習(xí)創(chuàng)建一個(gè)名叫student的表,包含三個(gè)屬性:學(xué)號(hào):sno,長(zhǎng)為20的字符串,主鍵;姓名:sname,長(zhǎng)為10的字符串,非空;年齡:sage,長(zhǎng)為3的整數(shù)(1-200);在表中插入三個(gè)合法記錄(內(nèi)容隨意)在表中執(zhí)行查詢、修改和刪除操作;刪除表課堂練習(xí)創(chuàng)建一個(gè)名叫l(wèi)oginuser的表,包含三個(gè)屬性:用戶名:uname,長(zhǎng)為20的字符串,主鍵;密碼:upass,長(zhǎng)為10的字符串,非空;年齡:uage,長(zhǎng)為3的整數(shù)(1-200);在表中插入三個(gè)合法記錄(內(nèi)容隨意)在表中執(zhí)行查詢、修改和刪除操作;7.1JDBC簡(jiǎn)介什么是JDBC?Java數(shù)據(jù)庫(kù)連接(JavaDataBaseConnectivity)Sun公司開(kāi)發(fā)的一種用于執(zhí)行SQL語(yǔ)句的JavaAPI由一組用Java語(yǔ)言編寫(xiě)的類和接口組成,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn)通用性:只需用JDBCAPI編寫(xiě)一個(gè)程序,就可以向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句,進(jìn)而訪問(wèn)多種不同的數(shù)據(jù)庫(kù)7.1JDBC簡(jiǎn)介JDBCAPI中的類和接口java.sql.DriverManager類java.sql.Connection接口java.sql.Statement接口java.sql.PreparedStatement接口java.sql.ResultSet接口

7.1JDBC簡(jiǎn)介與數(shù)據(jù)庫(kù)建立連接的兩種方式。1)建立JDBC-ODBC橋接器:由Sun公司本身開(kāi)發(fā)出來(lái)的軟件模塊性能不高(通常在教學(xué)中使用)2)加載純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序所有驅(qū)動(dòng)程序由各個(gè)數(shù)據(jù)庫(kù)生產(chǎn)廠商按照J(rèn)DBC標(biāo)準(zhǔn)提供性能較高(通常在軟件開(kāi)發(fā)中使用)7.2Java驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù)加載純Java驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù)的步驟:1)加載Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序2)創(chuàng)建連接(Connection)對(duì)象,連接到數(shù)據(jù)庫(kù)3)創(chuàng)建預(yù)處理語(yǔ)句(Statement)對(duì)象4)執(zhí)行SQL語(yǔ)句,得到查詢結(jié)果(ResultSet)5)對(duì)結(jié)果操作后,釋放連接賈璉欲執(zhí)事7.2Java驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù)1)加載Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序先將mysql-connector-java-5.0.8-bin文件加入到當(dāng)前項(xiàng)目的類庫(kù)中具體添加方法請(qǐng)看圖示。選擇properties7.2Java驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù)1)加載Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序Class.forName("com.mysql.jdbc.Driver");Class是包java.lang中的一個(gè)類;Class類通過(guò)調(diào)用靜態(tài)方法forName加載com.mysql.jdbc包中的Driver類連接數(shù)據(jù)庫(kù);加載類時(shí),可能會(huì)發(fā)生異常,需要捕捉7.2Java驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù)2)創(chuàng)建連接(Connection)對(duì)象 Connectioncon=DriverManager.getConnection(“jdbc:mysql://

主機(jī):端口號(hào):數(shù)據(jù)庫(kù)名","用戶名","密碼");jdbc:mysql://表示通過(guò)jdbc連接MySql數(shù)據(jù)庫(kù)主機(jī):端口:數(shù)據(jù)庫(kù)名一般為localhost:3306:test用戶名/密碼常用的是root/1234創(chuàng)建連接時(shí),可能會(huì)發(fā)生異常,需要捕捉。7.2Java驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù)3)創(chuàng)建預(yù)處理語(yǔ)句(Statement)對(duì)象 PrepareStatementps=con.prepareStatement("SQL語(yǔ)句");預(yù)編譯處理后,會(huì)生成該數(shù)據(jù)庫(kù)底層的內(nèi)部命令,并將該命令封裝在PreparedStatement對(duì)象中;預(yù)處理的方式不僅減輕了數(shù)據(jù)庫(kù)的負(fù)擔(dān),而且也提高了訪問(wèn)數(shù)據(jù)庫(kù)的速度。7.2Java驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù)4)執(zhí)行SQL語(yǔ)句 ResultSetrs=ps.executeQuery();//執(zhí)行查詢命令

ps.executeUpdate(); //執(zhí)行增刪改命令編譯好PreparedStatement對(duì)象之后,可令其執(zhí)行操作。如果預(yù)編譯中的SQL語(yǔ)句是查詢命令,則執(zhí)行executeQuery()方法如果預(yù)編譯中的SQL語(yǔ)句是增刪改命令,則執(zhí)行executeUpdate()方法7.2Java驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù)5)釋放連接 con.close() //關(guān)閉數(shù)據(jù)庫(kù)連接為了不浪費(fèi)系統(tǒng)資源,數(shù)據(jù)庫(kù)每次使用后都必須關(guān)閉。關(guān)閉數(shù)據(jù)庫(kù)的順序與打開(kāi)數(shù)據(jù)庫(kù)的順序相反1)先關(guān)閉結(jié)果集(ResultSet)2)再關(guān)閉操作(Statement)3)最后關(guān)閉連接(Connection)排序查詢可以在SQL語(yǔ)句中使用ORDERBY子語(yǔ)句,對(duì)記錄排序。例如:按總成績(jī)排序查詢的SQL語(yǔ)句 SELECT*FROMstudentORDERBYsno;升序:ASC(默認(rèn))降序:DESC模糊查詢可以用SQL語(yǔ)句操作符LIKE進(jìn)行模式般配:使用“%”代替0個(gè)或多個(gè)字符;用一個(gè)下劃線“_”代替1個(gè)字符;比如:下述語(yǔ)句查詢姓氏是“王”的記錄:SELECT*FROMstudentsWHEREsnameLIKE‘王%’;更新、添加、刪除預(yù)處理對(duì)象(PrepareStatement)執(zhí)行如下方法:publicintexecuteUpdate();SQL更新操作常用命令:UPDATE:UPDATEstudentSETsage=88WHEREsno=‘002’;INSERT:INSERTINTOstudentVALUES(‘004',‘xuliu',29);DELETE:DELETEFROMstudentWHEREsno=‘004’;在對(duì)SQL進(jìn)行預(yù)處理的時(shí)候,可以使用通配符“?”來(lái)代替字段的值,在預(yù)處理語(yǔ)句執(zhí)行之前,需調(diào)用相關(guān)方法設(shè)置通配符所代表的具體值。普通查詢:sql=con.prepareStatement("SELECT*FROM成績(jī)表WHEREmath<89");通配符查詢:sql=con.prepareStatement("SELECT*FROM成績(jī)表WHEREmath<?");sql.setInt(1,89);優(yōu)點(diǎn):使用通配符可以使得應(yīng)用程序更容易動(dòng)態(tài)的改變SQL語(yǔ)句中關(guān)于字段值的條件7.3通配符7.4在JSP中使用數(shù)據(jù)庫(kù)JSP頁(yè)面可以在JAVA程序片中添加連接數(shù)據(jù)庫(kù)的代碼,完成對(duì)數(shù)據(jù)庫(kù)的操作但這種方式寫(xiě)出的代碼太混亂?。。o(wú)法將數(shù)據(jù)的顯示與數(shù)據(jù)的處理分離。7.4在JSP中使用數(shù)據(jù)庫(kù)解決方案:采用JSP+JavaBean模式。即:JSP頁(yè)面調(diào)用bean來(lái)完成對(duì)數(shù)據(jù)庫(kù)的操作課堂練習(xí):制作一個(gè)簡(jiǎn)易的客戶登陸頁(yè)面:由login.jsp、server.jsp、success.jsp和fail.jsp四個(gè)頁(yè)面構(gòu)成;在submit.jsp中輸入用戶名和密碼,點(diǎn)擊提交鍵后將信息提交給server.jsp處理server.jsp通過(guò)JavaBean連接Oracle數(shù)據(jù)庫(kù),查詢?cè)赨ser表中是否存在輸入的用戶名和密碼,是則顯示成功,跳轉(zhuǎn)至success.jsp,否則跳轉(zhuǎn)至fail.jsp,顯示失敗練習(xí):順序查詢練習(xí):排序查詢練習(xí):模糊查詢練習(xí):更新、添加與刪除操作

Statement對(duì)象調(diào)用方法:intexecuteUpdate(StringsqlStatement);通過(guò)參數(shù)sqlStatement指定的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)表中記錄的更新、添加和刪除操作。練習(xí):更新操作

練習(xí):添加操作

練習(xí):刪除操作

練習(xí):更新、添加與刪除操作

7.基于CachedRowSet分頁(yè)顯示記錄CachedRowSetImpl對(duì)象可以保存ResultSet對(duì)象中的數(shù)據(jù),而且CachedRowSetImpl對(duì)象不依賴Connnection對(duì)象這意味著一旦把ResultSet對(duì)象中的數(shù)據(jù)保存到CachedRowSetImpl對(duì)象后,就可以關(guān)閉和數(shù)據(jù)庫(kù)的連接如何連接Oracle1.加載Java驅(qū)動(dòng)程序Class.forName("oracle.jdbc.driver.OracleDriver");2.建立連接con=DriverManager.getConnection("jdbc:oracle:thin:@主機(jī):端口號(hào):數(shù)據(jù)庫(kù)名","用戶名","密碼");看例子8.連接Oracle數(shù)據(jù)庫(kù)加載驅(qū)動(dòng)程序:Class.forName("oracle.jdbc.driver.OracleDriver");建立連接:Connectionconn=DriverManager.getConnection("jdbc:oracle:thin:@主機(jī)host:端口號(hào):數(shù)據(jù)庫(kù)名","用戶名","密碼");

9.連接MySq

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論