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

下載本文檔

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

文檔簡介

Chapter1實訓項目相關(guān)知識點:JDBCChapter2回顧與作業(yè)點評Collection、List、Set、Map接口的聯(lián)系和區(qū)別有哪些?ArrayList和LinkedList有什么異同之處?有哪些遍歷集合的方法?為什么要引入泛型集合?Chapter3預習檢查JDBC的英文全稱是什么?JDBC的主要作用是什么?PreparedStatement與Statement相比,具有什么優(yōu)勢?Chapter4本章任務(wù)使用JDBC實現(xiàn)寵物信息的增刪改查使用JDBC實現(xiàn)寵物主人信息的查詢使用JDBC實現(xiàn)寵物主人登錄Chapter5本章目標理解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ū)動JDBC驅(qū)動提供者:數(shù)據(jù)庫廠商作用:負責連接各種不同的數(shù)據(jù)庫SqlServerOracleJDBCAPIJDBCDriverManagerJDBC驅(qū)動JDBC驅(qū)動Java應(yīng)用程序JDBC程序的工作原理Chapter8JDBCAPI可做三件事:與數(shù)據(jù)庫建立連接、執(zhí)行SQL語句、處理結(jié)果DriverManager:依據(jù)數(shù)據(jù)庫的不同,管理JDBC驅(qū)動Connection:負責連接數(shù)據(jù)庫并擔任傳送數(shù)據(jù)的任務(wù)Statement:由Connection產(chǎn)生、負責執(zhí)行SQL語句ResultSet:負責保存Statement執(zhí)行后所產(chǎn)生的查詢結(jié)果ConnectionDriverManagerStatementResultSet客戶端數(shù)據(jù)庫服務(wù)器1234JDBCAPIChapter9try{Class.forName(JDBC驅(qū)動類);}catch(ClassNotFoundExceptione){System.out.println("無法找到驅(qū)動類");}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ū)動

JDBCURL用來標識數(shù)據(jù)庫釋放資源JDBC工作模板Chapter10JDBC驅(qū)動由數(shù)據(jù)庫廠商提供在個人開發(fā)與測試中,可以使用JDBC-ODBC橋連方式在生產(chǎn)型開發(fā)中,推薦使用純Java驅(qū)動方式DBServerDBServerJDBCAPIJDBCDriverManager純Java驅(qū)動JDBC–ODBC橋Java應(yīng)用程序ODBCJDBC驅(qū)動5-1Chapter11使用JDBC-ODBC橋方式連接數(shù)據(jù)庫將對JDBCAPI的調(diào)用,轉(zhuǎn)換為對另一組數(shù)據(jù)庫連接API的調(diào)用優(yōu)點:可以訪問所有ODBC可以訪問的數(shù)據(jù)庫缺點:執(zhí)行效率低、功能不夠強大JDBC-ODBC橋Java應(yīng)用程序JDBCAPIODBCAPIODBC層DBServerJDBC驅(qū)動5-2Chapter12使用JDBC-ODBC進行橋連配置數(shù)據(jù)源:控制面板ODBC數(shù)據(jù)源系統(tǒng)DSN編程JDBC驅(qū)動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ū)動必須進行相關(guān)異常處理Chapter13使用純Java方式連接數(shù)據(jù)庫由JDBC驅(qū)動直接訪問數(shù)據(jù)庫優(yōu)點:100%Java,快又可跨平臺缺點:訪問不同的數(shù)據(jù)庫需要下載專用的JDBC驅(qū)動JDBC

驅(qū)動Java應(yīng)用程序JDBCAPIDBServerJDBC驅(qū)動5-4Chapter14JDBC驅(qū)動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ū)動必須進行相關(guān)異常處理演示示例:使用純Java方式連接數(shù)據(jù)庫Chapter15練習——使用純Java方式連接數(shù)據(jù)庫需求說明:數(shù)據(jù)庫為SQLServer2008數(shù)據(jù)庫名“epet”,用戶名“jbit”,密碼“bdqn”使用純Java方式連接該數(shù)據(jù)庫如果連接成功,輸出“建立連接成功!”,否則輸出“建立連接失敗!”進行相關(guān)異常處理完成時間:20分鐘Chapter16JDBC應(yīng)用對寵物和主人信息進行管理:寵物和主人信息存儲在SQLServer2008中通過JDBC對寵物和主人進行增、刪、改、查字段名字段說明字段類型其他id序號int主鍵、自增name昵稱varchar(12)health健康值intlove親密度intstrain品種varchar(20)字段名字段說明字段類型其他id序號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對象關(guān)閉Statement對象聲明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對象關(guān)閉Statement對象聲明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編號\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語句進行查詢,結(jié)果賦給結(jié)果集變量rs注意關(guān)閉順序遍歷結(jié)果集,輸出所有狗狗信息將光標向下移動一行可使用列號或列名標識列ResultSet可以理解一個二維表,每行代表一條記錄,每列代表一個字段。并且存在一個光標,光標所指行為當前行

演示示例:使用Statement和ResultSet查詢寵物Chapter20Statement常用方法方法名說明ResultSetexecuteQuery(Stringsql)執(zhí)行SQL查詢并獲取到ResultSet對象intexecuteUpdate(Stringsql)可以執(zhí)行插入、刪除、更新等操作,返回值是執(zhí)行該操作所影響的行數(shù)booleanexecute(Stringsql)可以執(zhí)行任意SQL語句,然后獲得一個布爾值,表示是否返回ResultSetChapter21ResultSet常用方法方法名說明booleannext()將光標從當前位置向下移動一行booleanprevious()游標從當前位置向上移動一行voidclose()關(guān)閉ResultSet對象intgetInt(intcolIndex)以int形式獲取結(jié)果集當前行指定列號值intgetInt(StringcolLabel)以int形式獲取結(jié)果集當前行指定列名值floatgetFloat(intcolIndex)以float形式獲取結(jié)果集當前行指定列號值floatgetFloat(StringcolLabel)以float形式獲取結(jié)果集當前行指定列名值StringgetString(intcolIndex)以String形式獲取結(jié)果集當前行指定列號值StringgetString(StringcolLabel)以String形式獲取結(jié)果集當前行指定列名值Chapter22講解需求說明指導——查詢所有寵物主人信息訓練要點:Statement接口ResultSet接口需求說明:使用JDBC查詢數(shù)據(jù)表master中所有寵物主人信息并輸出實現(xiàn)思路:調(diào)用executeQuery(Stringsql)查詢主人信息通過next()和getXxx()方法遍歷結(jié)果集并輸出難點指導:遍歷結(jié)果集完成時間:20分鐘Chapter23為什么要使用PreparedStatement使用JDBC完成主人登錄驗證功能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("登錄失敗,請重新輸入!");…stmt.close();conn.close();演示示例:實現(xiàn)主人登錄驗證Chapter24PreparedStatement接口(預編譯的SQL語句)Statement接口提高了代碼的可讀性和可維護性

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論