Java程序設(shè)計(jì)課件:實(shí)訓(xùn)項(xiàng)目_第1頁
Java程序設(shè)計(jì)課件:實(shí)訓(xùn)項(xiàng)目_第2頁
Java程序設(shè)計(jì)課件:實(shí)訓(xùn)項(xiàng)目_第3頁
Java程序設(shè)計(jì)課件:實(shí)訓(xùn)項(xiàng)目_第4頁
Java程序設(shè)計(jì)課件:實(shí)訓(xùn)項(xiàng)目_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Chapter1實(shí)訓(xùn)項(xiàng)目相關(guān)知識(shí)點(diǎn):JDBCChapter2回顧與作業(yè)點(diǎn)評(píng)Collection、List、Set、Map接口的聯(lián)系和區(qū)別有哪些?ArrayList和LinkedList有什么異同之處?有哪些遍歷集合的方法?為什么要引入泛型集合?Chapter3預(yù)習(xí)檢查JDBC的英文全稱是什么?JDBC的主要作用是什么?PreparedStatement與Statement相比,具有什么優(yōu)勢?Chapter4本章任務(wù)使用JDBC實(shí)現(xiàn)寵物信息的增刪改查使用JDBC實(shí)現(xiàn)寵物主人信息的查詢使用JDBC實(shí)現(xiàn)寵物主人登錄Chapter5本章目標(biāo)理解JDBC原理掌握Connection接口的使用掌握Statement接口的使用掌握ResultSet接口的使用掌握PreparedStatement接口的使用Chapter6JDBC是Java數(shù)據(jù)庫連接技術(shù)的簡稱,提供連接各種常用數(shù)據(jù)庫的能力Java應(yīng)用程序JDBCJDBCJSP/Servlet客戶端數(shù)據(jù)庫服務(wù)器應(yīng)用服務(wù)器數(shù)據(jù)庫服務(wù)器客戶端為什么需要JDBCChapter7JDBCAPI提供者:Sun公司內(nèi)容:供程序員調(diào)用的接口與類,集成在java.sql和javax.sql包中,如:DriverManager類Connection接口Statement接口ResultSet接口DriverManager提供者:Sun公司作用:管理各種不同的JDBC驅(qū)動(dòng)JDBC驅(qū)動(dòng)提供者:數(shù)據(jù)庫廠商作用:負(fù)責(zé)連接各種不同的數(shù)據(jù)庫SqlServerOracleJDBCAPIJDBCDriverManagerJDBC驅(qū)動(dòng)JDBC驅(qū)動(dòng)Java應(yīng)用程序JDBC程序的工作原理Chapter8JDBCAPI可做三件事:與數(shù)據(jù)庫建立連接、執(zhí)行SQL語句、處理結(jié)果DriverManager:依據(jù)數(shù)據(jù)庫的不同,管理JDBC驅(qū)動(dòng)Connection:負(fù)責(zé)連接數(shù)據(jù)庫并擔(dān)任傳送數(shù)據(jù)的任務(wù)Statement:由Connection產(chǎn)生、負(fù)責(zé)執(zhí)行SQL語句ResultSet:負(fù)責(zé)保存Statement執(zhí)行后所產(chǎn)生的查詢結(jié)果ConnectionDriverManagerStatementResultSet客戶端數(shù)據(jù)庫服務(wù)器1234JDBCAPIChapter9try{Class.forName(JDBC驅(qū)動(dòng)類);}catch(ClassNotFoundExceptione){System.out.println("無法找到驅(qū)動(dòng)類");}try{Connectioncon=DriverManager.getConnection(JDBCURL,數(shù)據(jù)庫用戶名,密碼);

Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");

while(rs.next()){intx=rs.getInt("a");Strings=rs.getString("b");floatf=rs.getFloat("c");}con.close();}catch(SQLExceptione){e.printStackTrace();}與數(shù)據(jù)庫建立連接

發(fā)送SQL語句,并得到返回結(jié)果

處理返回結(jié)果

加載JDBC驅(qū)動(dòng)

JDBCURL用來標(biāo)識(shí)數(shù)據(jù)庫釋放資源JDBC工作模板Chapter10JDBC驅(qū)動(dòng)由數(shù)據(jù)庫廠商提供在個(gè)人開發(fā)與測試中,可以使用JDBC-ODBC橋連方式在生產(chǎn)型開發(fā)中,推薦使用純Java驅(qū)動(dòng)方式DBServerDBServerJDBCAPIJDBCDriverManager純Java驅(qū)動(dòng)JDBC–ODBC橋Java應(yīng)用程序ODBCJDBC驅(qū)動(dòng)5-1Chapter11使用JDBC-ODBC橋方式連接數(shù)據(jù)庫將對(duì)JDBCAPI的調(diào)用,轉(zhuǎn)換為對(duì)另一組數(shù)據(jù)庫連接API的調(diào)用優(yōu)點(diǎn):可以訪問所有ODBC可以訪問的數(shù)據(jù)庫缺點(diǎn):執(zhí)行效率低、功能不夠強(qiáng)大JDBC-ODBC橋Java應(yīng)用程序JDBCAPIODBCAPIODBC層DBServerJDBC驅(qū)動(dòng)5-2Chapter12使用JDBC-ODBC進(jìn)行橋連配置數(shù)據(jù)源:控制面板ODBC數(shù)據(jù)源系統(tǒng)DSN編程JDBC驅(qū)動(dòng)5-3…Connectionconn=null;try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){ logger.error(e);}try{

conn=DriverManager.getConnection("jdbc:odbc:ConnSQLServer", "jbit","bdqn"); System.out.println("建立連接成功!");}catch(SQLExceptione){ logger.error(e);}finally{ try{

conn.close();

}catch(SQLExceptione){ logger.error(e); }}關(guān)閉連接建立連接加載驅(qū)動(dòng)必須進(jìn)行相關(guān)異常處理Chapter13使用純Java方式連接數(shù)據(jù)庫由JDBC驅(qū)動(dòng)直接訪問數(shù)據(jù)庫優(yōu)點(diǎn):100%Java,快又可跨平臺(tái)缺點(diǎn):訪問不同的數(shù)據(jù)庫需要下載專用的JDBC驅(qū)動(dòng)JDBC

驅(qū)動(dòng)Java應(yīng)用程序JDBCAPIDBServerJDBC驅(qū)動(dòng)5-4Chapter14JDBC驅(qū)動(dòng)5-5…Connectionconn=null;try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}catch(ClassNotFoundExceptione){ logger.error(e);}try{

conn=DriverManager.getConnection(

"jdbc:sqlserver://localhost:1433;DatabaseName=epet","jbit","bdqn"); System.out.println("建立連接成功!");}catch(SQLExceptione){ logger.error(e);}finally{ try{

conn.close(); }catch(SQLExceptione){ logger.error(e); }}關(guān)閉連接建立連接加載驅(qū)動(dòng)必須進(jìn)行相關(guān)異常處理演示示例:使用純Java方式連接數(shù)據(jù)庫Chapter15練習(xí)——使用純Java方式連接數(shù)據(jù)庫需求說明:數(shù)據(jù)庫為SQLServer2008數(shù)據(jù)庫名“epet”,用戶名“jbit”,密碼“bdqn”使用純Java方式連接該數(shù)據(jù)庫如果連接成功,輸出“建立連接成功!”,否則輸出“建立連接失??!”進(jìn)行相關(guān)異常處理完成時(shí)間:20分鐘Chapter16JDBC應(yīng)用對(duì)寵物和主人信息進(jìn)行管理:寵物和主人信息存儲(chǔ)在SQLServer2008中通過JDBC對(duì)寵物和主人進(jìn)行增、刪、改、查字段名字段說明字段類型其他id序號(hào)int主鍵、自增name昵稱varchar(12)health健康值intlove親密度intstrain品種varchar(20)字段名字段說明字段類型其他id序號(hào)int主鍵、自增name姓名varchar(12)password密碼varchar(20)money元寶數(shù)intChapter17使用Statement添加寵物…Connectionconn=null;Statementstmt=null;…//建立連接conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=epet","jbit","bdqn");//插入狗狗信息到數(shù)據(jù)庫stmt=conn.createStatement();StringBuffersbSql=newStringBuffer( "insertintodog(name,health,love,strain)values('");sbSql.append(name+"',");sbSql.append(health+",");sbSql.append(love+",'");sbSql.append(strain+"')");stmt.execute(sbSql.toString());…stmt.close();conn.close();執(zhí)行SQL語句獲取Statement對(duì)象關(guān)閉Statement對(duì)象聲明Statement變量演示示例:使用Statement添加寵物Chapter18使用Statement更新寵物Connectionconn=null;Statementstmt=null;…//建立連接conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=epet","jbit","bdqn");//更新狗狗信息到數(shù)據(jù)庫stmt=conn.createStatement();stmt.executeUpdate("updatedogsethealth=80,love=15whereid=1");…stmt.close();conn.close();執(zhí)行SQL語句獲取Statement對(duì)象關(guān)閉Statement對(duì)象聲明Statement變量演示示例:使用Statement更新寵物Chapter19使用Statement和ResultSet查詢寵物Connectionconn=null;Statementstmt=null;ResultSetrs=null;…conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=epet","jbit","bdqn");//查詢并輸出狗狗信息stmt=conn.createStatement();rs=stmt.executeQuery("select*fromdog");System.out.println("\t\t狗狗信息列表\n編號(hào)\t姓名\t健康值\t親密度\t品種");while(

rs.next()

){ System.out.print(

rs.getInt(1)

+"\t"); System.out.print(

rs.getString(2)

+"\t"); System.out.print(rs.getInt("health")+"\t"); System.out.print(rs.getInt("love")+"\t"); System.out.println(rs.getString("strain"));}…rs.close();stmt.close();conn.close();執(zhí)行SQL語句進(jìn)行查詢,結(jié)果賦給結(jié)果集變量rs注意關(guān)閉順序遍歷結(jié)果集,輸出所有狗狗信息將光標(biāo)向下移動(dòng)一行可使用列號(hào)或列名標(biāo)識(shí)列ResultSet可以理解一個(gè)二維表,每行代表一條記錄,每列代表一個(gè)字段。并且存在一個(gè)光標(biāo),光標(biāo)所指行為當(dāng)前行

演示示例:使用Statement和ResultSet查詢寵物Chapter20Statement常用方法方法名說明ResultSetexecuteQuery(Stringsql)執(zhí)行SQL查詢并獲取到ResultSet對(duì)象intexecuteUpdate(Stringsql)可以執(zhí)行插入、刪除、更新等操作,返回值是執(zhí)行該操作所影響的行數(shù)booleanexecute(Stringsql)可以執(zhí)行任意SQL語句,然后獲得一個(gè)布爾值,表示是否返回ResultSetChapter21ResultSet常用方法方法名說明booleannext()將光標(biāo)從當(dāng)前位置向下移動(dòng)一行booleanprevious()游標(biāo)從當(dāng)前位置向上移動(dòng)一行voidclose()關(guān)閉ResultSet對(duì)象intgetInt(intcolIndex)以int形式獲取結(jié)果集當(dāng)前行指定列號(hào)值intgetInt(StringcolLabel)以int形式獲取結(jié)果集當(dāng)前行指定列名值floatgetFloat(intcolIndex)以float形式獲取結(jié)果集當(dāng)前行指定列號(hào)值floatgetFloat(StringcolLabel)以float形式獲取結(jié)果集當(dāng)前行指定列名值StringgetString(intcolIndex)以String形式獲取結(jié)果集當(dāng)前行指定列號(hào)值StringgetString(StringcolLabel)以String形式獲取結(jié)果集當(dāng)前行指定列名值Chapter22講解需求說明指導(dǎo)——查詢所有寵物主人信息訓(xùn)練要點(diǎn):Statement接口ResultSet接口需求說明:使用JDBC查詢數(shù)據(jù)表master中所有寵物主人信息并輸出實(shí)現(xiàn)思路:調(diào)用executeQuery(Stringsql)查詢主人信息通過next()和getXxx()方法遍歷結(jié)果集并輸出難點(diǎn)指導(dǎo):遍歷結(jié)果集完成時(shí)間:20分鐘Chapter23為什么要使用PreparedStatement使用JDBC完成主人登錄驗(yàn)證功能Connectionconn=null;Statementstmt=null;ResultSetrs=null;…//建立連接conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=epet","jbit","bdqn");//判斷寵物主人登錄是否成功stmt=conn.createStatement();Stringsql="select*frommasterwherename='"+name+ "'andpassword='"+password+"'";System.out.println(sql);rs=stmt.executeQuery(sql);if(rs.next()) System.out.println("登錄成功,歡迎您!");else System.out.println("登錄失敗,請(qǐng)重新輸入!");…stmt.close();conn.close();演示示例:實(shí)現(xiàn)主人登錄驗(yàn)證Chapter24PreparedStatement接口(預(yù)編譯的SQL語句)Statement接口提高了代碼的可讀性和可維護(hù)性

PreparedStatement接口繼承Statement接口PreparedStatement比普通的Statement對(duì)象使用起來更加靈活,更有效率PreparedStatement提高了SQL語句執(zhí)行的性能

提高了安全性Chapter25使用PreparedStatement更新寵物Connectionconn=null;P

溫馨提示

  • 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. 人人文庫網(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)論