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

下載本文檔

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

文檔簡介

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

7.1JDBC簡介與數(shù)據(jù)庫建立連接的兩種方式。1)建立JDBC-ODBC橋接器:由Sun公司本身開發(fā)出來的軟件模塊性能不高(通常在教學(xué)中使用)2)加載純Java數(shù)據(jù)庫驅(qū)動程序所有驅(qū)動程序由各個數(shù)據(jù)庫生產(chǎn)廠商按照J(rèn)DBC標(biāo)準(zhǔn)提供性能較高(通常在軟件開發(fā)中使用)7.2Java驅(qū)動程序連接數(shù)據(jù)庫加載純Java驅(qū)動程序連接數(shù)據(jù)庫的步驟:1)加載Java數(shù)據(jù)庫驅(qū)動程序2)創(chuàng)建連接(Connection)對象,連接到數(shù)據(jù)庫3)創(chuàng)建預(yù)處理語句(Statement)對象4)執(zhí)行SQL語句,得到查詢結(jié)果(ResultSet)5)對結(jié)果操作后,釋放連接賈璉欲執(zhí)事7.2Java驅(qū)動程序連接數(shù)據(jù)庫1)加載Java數(shù)據(jù)庫驅(qū)動程序先將oracle文件夾下的ojdbc14.jar文件加入到當(dāng)前項目的類庫中,該文件的路徑如下: (oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar)具體添加方法請看圖示。選擇properties7.2Java驅(qū)動程序連接數(shù)據(jù)庫1)加載Java數(shù)據(jù)庫驅(qū)動程序Class.forName("oracle.jdbc.driver.OracleDriver");Class是包java.lang中的一個類;Class類通過調(diào)用靜態(tài)方法forName加載oracle.jdbc.driver包中的OracleDriver類連接數(shù)據(jù)庫;加載類時,可能會發(fā)生異常,需要捕捉7.2Java驅(qū)動程序連接數(shù)據(jù)庫2)創(chuàng)建連接(Connection)對象 Connectioncon=DriverManager.getConnection("jdbc:oracle:thin:@主機:端口號:數(shù)據(jù)庫名", "用戶名","密碼");jdbc:oracle:thin@表示通過jdbc采用thin模式連接Oracle數(shù)據(jù)庫主機:端口:數(shù)據(jù)庫名一般為localhost:1521:orcl用戶名/密碼常用的是scott/tiger創(chuàng)建連接時,可能會發(fā)生異常,需要捕捉。7.2Java驅(qū)動程序連接數(shù)據(jù)庫3)創(chuàng)建預(yù)處理語句(Statement)對象 PrepareStatementps=con.prepareStatement("SQL語句");預(yù)編譯處理后,會生成該數(shù)據(jù)庫底層的內(nèi)部命令,并將該命令封裝在PreparedStatement對象中;預(yù)處理的方式不僅減輕了數(shù)據(jù)庫的負(fù)擔(dān),而且也提高了訪問數(shù)據(jù)庫的速度。7.2Java驅(qū)動程序連接數(shù)據(jù)庫4)執(zhí)行SQL語句 ResultSetrs=ps.executeQuery();//執(zhí)行查詢命令

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

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

練習(xí):添加操作

練習(xí):刪除操作

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

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

9.連接

溫馨提示

  • 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

提交評論