JDBC連接Oracle數(shù)據(jù)庫(kù)培訓(xùn)資料課件_第1頁(yè)
JDBC連接Oracle數(shù)據(jù)庫(kù)培訓(xùn)資料課件_第2頁(yè)
JDBC連接Oracle數(shù)據(jù)庫(kù)培訓(xùn)資料課件_第3頁(yè)
JDBC連接Oracle數(shù)據(jù)庫(kù)培訓(xùn)資料課件_第4頁(yè)
JDBC連接Oracle數(shù)據(jù)庫(kù)培訓(xùn)資料課件_第5頁(yè)
已閱讀5頁(yè),還剩24頁(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)介

JDBC連接Oracle數(shù)據(jù)庫(kù)第一頁(yè),共二十九頁(yè)。Java程序和JDBC及數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系Java應(yīng)用程序數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)JDBCAPIJDBC驅(qū)動(dòng)程序管理器JDBC/ODBC橋ODBC驅(qū)動(dòng)程序JDBC驅(qū)動(dòng)程序第二頁(yè),共二十九頁(yè)。傳統(tǒng)C/S(客戶/服務(wù))器模式客戶端JDBC數(shù)據(jù)庫(kù)服務(wù)器數(shù)據(jù)庫(kù)協(xié)議(數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序)第三頁(yè),共二十九頁(yè)。B/S(瀏覽器/服務(wù)器)應(yīng)用程序客戶端瀏覽器中間層(業(yè)務(wù)邏輯)JDBC數(shù)據(jù)庫(kù)服務(wù)器HTTP協(xié)議數(shù)據(jù)庫(kù)協(xié)議第四頁(yè),共二十九頁(yè)。JDBC開(kāi)發(fā)過(guò)程裁入某種數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序與某一個(gè)數(shù)據(jù)庫(kù)建立連接對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新插入數(shù)據(jù)修改數(shù)據(jù)刪除數(shù)據(jù)SELECTINSERTUPDATEDETELE第五頁(yè),共二十九頁(yè)。JDBC中常用的類型DriverManagerConnectionStatement(PreparedStatement)ResultSet第六頁(yè),共二十九頁(yè)。SQLJDBC工作流程驅(qū)動(dòng)管理器連接語(yǔ)句結(jié)果集創(chuàng)建創(chuàng)建創(chuàng)建驅(qū)動(dòng)程序數(shù)據(jù)庫(kù)數(shù)據(jù)DriveMangerConnectionStatementPreparedStatementResultSetgetconnectioncreateStatmentexecuteQuery第七頁(yè),共二十九頁(yè)。JDBC連接數(shù)據(jù)過(guò)程加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)連接創(chuàng)建語(yǔ)句對(duì)象通過(guò)語(yǔ)句對(duì)象向數(shù)據(jù)庫(kù)發(fā)送并執(zhí)行sql語(yǔ)句得到數(shù)據(jù)庫(kù)的結(jié)果集(可選)第八頁(yè),共二十九頁(yè)。數(shù)據(jù)庫(kù)驅(qū)動(dòng)ODBC驅(qū)動(dòng)

sun.jdbc.odbc.JdbcOdbcDriverOracle驅(qū)動(dòng)

oracle.jdbc.driver.OracleDriver第九頁(yè),共二十九頁(yè)。加載驅(qū)動(dòng)加載驅(qū)動(dòng)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver“)Class.forName("oracle.jdbc.driver.OracleDriver“)注意加載驅(qū)動(dòng)需要導(dǎo)入第三方驅(qū)動(dòng)包第十頁(yè),共二十九頁(yè)。創(chuàng)建數(shù)據(jù)庫(kù)連接相關(guān)信息數(shù)據(jù)庫(kù)URL數(shù)據(jù)庫(kù)連接用戶名數(shù)據(jù)庫(kù)連接密碼第十一頁(yè),共二十九頁(yè)。數(shù)據(jù)庫(kù)URLJDBC使用URL來(lái)標(biāo)識(shí)驅(qū)動(dòng)程序和數(shù)據(jù)源兩者的位置,格式如下,jdbc:<subprotocol>:<datesourceidentifier>jdbc:<指定JDBC驅(qū)動(dòng)程序>:<數(shù)據(jù)源標(biāo)識(shí)>例子如下:

jdbc:odbc:TestDBjdbc:oracle:thin:@33:1521:ora第十二頁(yè),共二十九頁(yè)。創(chuàng)建數(shù)據(jù)庫(kù)連接創(chuàng)建數(shù)據(jù)庫(kù)連接Connectioncon=DriverManager.getConnection("jdbc:oracle:thin:@33:1521:ora","scott","tiger");第十三頁(yè),共二十九頁(yè)。創(chuàng)建語(yǔ)句對(duì)象(增刪改)Stringsql="insertintoadminvalues(‘張三’,20)";Statementstmt=con.createStatement();introw=stmt.executeUpdate(sql);對(duì)于增刪改的操作,主要的變化在于SQL語(yǔ)句。連接對(duì)象和語(yǔ)句對(duì)象使用完畢必須釋放資源stmt.close();con.close();第十四頁(yè),共二十九頁(yè)。查詢操作Stringsql=“select*fromadmin";Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(sql);第十五頁(yè),共二十九頁(yè)。對(duì)于結(jié)果集的操作結(jié)果集游標(biāo)con.createStatement()等價(jià)于con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY)游標(biāo)的移動(dòng)類型、游標(biāo)的操作類型第十六頁(yè),共二十九頁(yè)。ResultSet其他常量游標(biāo)指針移動(dòng)類型TYPE_FORWARD_ONLY表示游標(biāo)只能向前移動(dòng)。TYPE_SCROLL_INSENSITIVE雙向滾動(dòng),但不及時(shí)更新,就是如果數(shù)據(jù)庫(kù)里的數(shù)據(jù)修改過(guò),并不在ResultSet中反應(yīng)出來(lái)。TYPE_SCROLL_SENSITIVE雙向滾動(dòng),并及時(shí)跟蹤數(shù)據(jù)庫(kù)的更新,以便更改ResultSet中的數(shù)據(jù)。第十七頁(yè),共二十九頁(yè)。ResultSet其他常量游標(biāo)指針操作類型CONCUR_READ_ONLY結(jié)果集只讀操作CONCUR_UPDATABLE結(jié)果集可更新操作

第十八頁(yè),共二十九頁(yè)。ResultSet常用方法游標(biāo)操作方法booleannext()booleanprevious()booleanabsolute(introw)booleanfirst()booleanlast()voidafterLast()voidbeforeFirst()booleanisAfterLast()booleanisBeforeFirst()booleanisFirst()booleanisLast()第十九頁(yè),共二十九頁(yè)。ResultSet常用方法獲得結(jié)果集指針對(duì)于的數(shù)據(jù)TypegetType(StringcolumnLabel)TypegetType(intcolumnIndex)關(guān)閉結(jié)果集voidclose();第二十頁(yè),共二十九頁(yè)。通過(guò)結(jié)果集插入數(shù)據(jù)rs.moveToInsertRow();rs.updateString("name","cc");rs.updateInt("age",33);rs.insertRow();rs.moveToCurrentRow();第二十一頁(yè),共二十九頁(yè)。通過(guò)結(jié)果集刪除數(shù)據(jù)rs.absolute(1);rs.deleteRow();第二十二頁(yè),共二十九頁(yè)。通過(guò)結(jié)果集修改操作rs.absolute(1);rs.updateInt("age",100);rs.updateRow();第二十三頁(yè),共二十九頁(yè)。PreparedStatement解決sql注入問(wèn)題。能夠動(dòng)態(tài)賦值sql參數(shù)。Stringsql=“Updateadminsetname=?,age=?”PreparedStatementpstmt=con.prepareStatement(sql);第二十四頁(yè),共二十九頁(yè)。使用PreparedStatement對(duì)象Stringsql=“Updateadminsetname=?,age=?”用set方法給主機(jī)變量賦值:

pstmt.setString(1,”張三”);pstmt.setString(2,20);執(zhí)行SQL語(yǔ)句

pstmt.executeUpdate();關(guān)閉語(yǔ)句pstmt.close();第二十五頁(yè),共二十九頁(yè)。CallableStatementStringsql=“{?=callget_age(?)}”cstmt.registerOutParameter(1,java.sql.Types.INTEGER);cstmt.setString(2,"aa");cstmt.execute();intage=cstmt.getInt(1);第二十六頁(yè),共二十九頁(yè)。關(guān)于事務(wù)的實(shí)現(xiàn)事務(wù):代表著一系列的操作語(yǔ)句。事務(wù)只有兩個(gè)狀態(tài),要么成功,要么失敗。成功時(shí)提交,失敗時(shí)回滾。舉例如下:

con.getAutoCommit(false);Statementstmt=con.createStatement()try{stmt.executeUpdate(command1);stmt.executeUpdate(command2);stmt.executeUpdate(command3);

……

……}catch(SQLExceptione){con.rollback();}mit();第二十七頁(yè),共二十九頁(yè)。List有序可重復(fù)Set加有參和無(wú)參第二十八頁(yè),共二十九頁(yè)。內(nèi)容總結(jié)JDBC連接Oracle數(shù)據(jù)庫(kù)。傳統(tǒng)C/S(客戶/服務(wù))器模式。B/S(瀏覽器/服務(wù)器)應(yīng)用程序。注意加載驅(qū)動(dòng)需要導(dǎo)入第三方驅(qū)動(dòng)包。JDBC使用URL來(lái)標(biāo)識(shí)驅(qū)動(dòng)程序和數(shù)據(jù)源兩者的位置,格式

溫馨提示

  • 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)論