jsp動態(tài)網(wǎng)站開發(fā)與實例(第3版)課件14_第1頁
jsp動態(tài)網(wǎng)站開發(fā)與實例(第3版)課件14_第2頁
jsp動態(tài)網(wǎng)站開發(fā)與實例(第3版)課件14_第3頁
jsp動態(tài)網(wǎng)站開發(fā)與實例(第3版)課件14_第4頁
jsp動態(tài)網(wǎng)站開發(fā)與實例(第3版)課件14_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Statement&ResultSet

Statement定義運行SQL指令所需的方法成員,如果運行的SQL是一種SELECT類型的指令。ResultSet則封裝Statement運行SQL指令之后所返回的數(shù)據(jù)內(nèi)容,用戶通過ResultSet取得SQL語句返回的數(shù)據(jù)內(nèi)容。1JSP動態(tài)網(wǎng)頁新技術(shù)Statement&ResultSetStatemeStatement&ResultSet2JSP動態(tài)網(wǎng)頁新技術(shù)Statement&ResultSet2JSP動態(tài)網(wǎng)頁Statement成員方法說明close()結(jié)束對象,釋放占用資源addBatch(Stringsql)將要運行的SQL指令加到批次指令中clearBatch()清除所有的SQL批次運行指令executeBatch()運行SQL批次指令execute(Stringsql)運行SQL一般指令executeQuery(Stringsql)運行SQL查詢指令,如select指令executeUpdate(Stringsql)運行SQL更改指令,如insert、delete、updategetConnection()返回產(chǎn)生這個Statement對象的Connection對象setMaxRows(intmax)設(shè)定ResultSet對象中可包含的最多數(shù)據(jù)數(shù)目為maxgetMaxRows()返回ResultSet對象中可包含的最多數(shù)據(jù)數(shù)目3JSP動態(tài)網(wǎng)頁新技術(shù)Statement成員方法說明close()結(jié)束對ResultSet成員方法說明absolute(intindex)移動指針到第index筆數(shù)據(jù)first()移動指針到第一筆數(shù)據(jù)last() 移動指針到最后一筆數(shù)據(jù)afterLast()移動指針到最后一筆數(shù)據(jù)之后beforeFirst()移動指針到第一筆數(shù)據(jù)之前next()移動指針到下一筆數(shù)據(jù)previous()移動指針到上一筆數(shù)據(jù)relative(introws)將指針往上或往下移動rows個位置,往上移則rows為負數(shù),往下移則rows為正數(shù)4JSP動態(tài)網(wǎng)頁新技術(shù)ResultSet成員方法說明absolute(iResultSet成員方法說明isAfterLast()返回布爾值表示指針是否位于最后一筆數(shù)據(jù)之后isBeforeFirst()返回布爾值表示指針是否位于第一筆數(shù)據(jù)之前isFirst()返回布爾值表示指針是否位于第一筆數(shù)據(jù)的位置isLast()返回布爾值表示指針是否位于第一筆數(shù)據(jù)的位置getRow()返回目前指針?biāo)笖?shù)據(jù)的位置5JSP動態(tài)網(wǎng)頁新技術(shù)ResultSet成員方法說明isAfterLasResultSet成員方法說明getString(intindex)返回目前指針?biāo)傅臄?shù)據(jù),第index字段中的字符串getString(Stringname)返回目前指針?biāo)傅臄?shù)據(jù),字段名稱為name中的字符串getInt(intindex)返回目前指針?biāo)傅臄?shù)據(jù),第index字段中的數(shù)值getInt(intindex) 返回目前指針?biāo)傅臄?shù)據(jù),第index字段中的數(shù)值getInt(Stringname)返回目前指針?biāo)傅臄?shù)據(jù),第index字段中的數(shù)值deleteRow()刪除指針?biāo)诘脑摴P數(shù)據(jù)refreshRow()重設(shè)數(shù)據(jù)中的值為上一次更新前的值getFetchSize()返回ResultSet對象中可包含最多的數(shù)據(jù)筆數(shù)close()結(jié)束對象,釋放占用資源6JSP動態(tài)網(wǎng)頁新技術(shù)ResultSet成員方法說明getString(運行SQL一般指令

Connectioncon=DriverManager.getConnection("jdbc:odbc:webData");Statementsmt=con.createStatement();Stringsql="createtablepeople";smt.execute(sql);Statement對象smt是由Connection類型的對象con調(diào)用createStatement()所產(chǎn)生的,而在定義了一個建立數(shù)據(jù)表的SQL指令字符串sql后,運行smt.execute(sql)來運行SQL指令。7JSP動態(tài)網(wǎng)頁新技術(shù)運行SQL一般指令Connectioncon=Dri變動數(shù)據(jù)表變動數(shù)據(jù)表結(jié)構(gòu)的方式,只需將相關(guān)的SQL指令傳入execute(sql)方法即可。SQL變動指令是指對數(shù)據(jù)庫進行新增(insert)、刪除(delete)或更新(update)等操作。8JSP動態(tài)網(wǎng)頁新技術(shù)變動數(shù)據(jù)表變動數(shù)據(jù)表結(jié)構(gòu)的方式,只需將相關(guān)的SQL指令傳入e運行SQL查詢指令

executeQuery()方法方法在運行完成之后,會返回一個ResultSet類型的對象,其中封裝了代表查詢結(jié)果的數(shù)據(jù)內(nèi)容:Connectioncon=DriverManager.getConnection("jdbc:odbc:webData");Statementsmt=con.createStatement();Stringsql="SELECT*FROMAuthor";ResultSetrs=smt.executeQuery(sql);9JSP動態(tài)網(wǎng)頁新技術(shù)運行SQL查詢指令executeQueryResultSet對象ResultSet對象是運行SQL查詢后,所產(chǎn)生的數(shù)據(jù)集合對象,代表一種表格狀的數(shù)據(jù)集合對象,包含SQL語句所產(chǎn)生的數(shù)據(jù)內(nèi)容。10JSP動態(tài)網(wǎng)頁新技術(shù)ResultSet對象ResultSet對象指針位置ResultSet對象返回的時候,指針在第一條數(shù)據(jù)之前的開頭位置。利用方法next()將指針往下移動。11JSP動態(tài)網(wǎng)頁新技術(shù)指針位置ResultSet對象返回的時候,指針在第一條數(shù)據(jù)之獲取字段內(nèi)容

getString()方法取得其中的字段值。strID=rs.GetString(0);strName=rs.GetString(1);根據(jù)字段的索引順序,將索引值當(dāng)作參數(shù)傳入getString()方法,便可以取得字段的內(nèi)容。12JSP動態(tài)網(wǎng)頁新技術(shù)獲取字段內(nèi)容getString()方法取得其中的字段SQL批處理指令

SQL批處理指令可一次運行多段SQL指令。用戶可以設(shè)定多個要運行的SQL指令,將這些SQL指令以addBatch()方法加到批處理文件中,而后引用executeBacth()方法運行。13JSP動態(tài)網(wǎng)頁新技術(shù)SQL批處理指令SQL批處理指令可一次運行多段SQL指令。交易交易是以一個批次為單位運行數(shù)個獨立的SQL指令。交易將操作數(shù)據(jù)庫的操作視為不可分割的過程。一旦過程中某段SQL運行發(fā)生錯誤,則先前所有運行完畢的步驟都將失效,只有整個交易過程成功運行完成之后,所有SQL指令的變動內(nèi)容才會整個生效。14JSP動態(tài)網(wǎng)頁新技術(shù)交易交易是以一個批次為單位運行數(shù)個獨立的SQL指令。14J交易方法交易的狀態(tài)必須由Connection作設(shè)定。setAutoCommit()用來設(shè)定是否目前的聯(lián)機處于交易狀態(tài)。rollback()為取消交易的任何操作,將所有狀態(tài)回復(fù)到未運行任何操作的初始狀態(tài)。commit()則是確認所有交易的操作。15JSP動態(tài)網(wǎng)頁新技術(shù)交易方法交易的狀態(tài)必須由Connection作設(shè)定。15J交易過程16JSP動態(tài)網(wǎng)頁新技術(shù)交易過程16JSP動態(tài)網(wǎng)頁新技術(shù)設(shè)定交易Connection默認會自動確認每一次數(shù)據(jù)庫的操作行為,要改變這種行為,只需取消自動確認的行為即可。 conn.setAutoCommit(false);setAutoCommit()接受一個boolean參數(shù),當(dāng)這個值為false的時候,聯(lián)機的自動確認的預(yù)設(shè)行為會被取消。17JSP動態(tài)網(wǎng)頁新技術(shù)設(shè)定交易Connection默認會自動確認每取消與確認一旦這一段程序代碼被運行,所有交易開始運行的操作都將失效: conn.rollback();當(dāng)所有的操作都已經(jīng)正確無誤的被完成之后,呼叫commit()可以確認整個交易被完成。 mit();18JSP動態(tài)網(wǎng)頁新技術(shù)取消與確認一旦這一段程序代碼被運行,所有交易開始運行的操作都控制指針默認情況下,ResultSet對象只能引用next()方法控制指針一次往前移動一格。Statementsmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);這行程序代碼所生成的Statement對象smt來運行數(shù)據(jù)查詢的SQL指令,產(chǎn)生的ResultSet對象其指針就不會被限定只能往下依序逐行移動了。19JSP動態(tài)網(wǎng)頁新技術(shù)控制指針默認情況下,ResultSet對象只能引用next(JSTLSQL標(biāo)簽分類標(biāo)簽說明聯(lián)機setDataSource設(shè)定數(shù)據(jù)來源SQL操作指令query設(shè)定SQL查詢param設(shè)定SQL參數(shù)update設(shè)定SQL變動dateParam日期參數(shù)解析transaction批量交易20JSP動態(tài)網(wǎng)頁新技術(shù)JSTLSQL標(biāo)簽分類標(biāo)簽說明聯(lián)機setDa<sql:setDataSource>

語法<sql:setDataSource{dataSource="dataSource"|url="jdbcUrl"[driver="driverClassName"][user="userName"][password="password"]}[var="varName"][scope=”{page|request|session|application}”]/>21JSP動態(tài)網(wǎng)頁新技術(shù)<sql:setDataSource>語法21<sql:setDataSource>-屬性屬性動態(tài)類型說明dataSource是Stringor

javax.sql.DataSource數(shù)據(jù)源名稱字符串,可指定為JNDI來源或是JDBC聯(lián)機字符串driver是StringJDBC參數(shù)字符串,驅(qū)動程序類名稱url是StringJDBC參數(shù)字符串,數(shù)據(jù)來源名稱user是String數(shù)據(jù)庫用戶賬號password是String數(shù)據(jù)庫用戶密碼var否String儲存聯(lián)機設(shè)定的變量名稱scope否String變量范圍22JSP動態(tài)網(wǎng)頁新技術(shù)<sql:setDataSource>-屬性屬性動態(tài)類dataSource

dataSource代表一個聯(lián)機字符串,所有的聯(lián)機信息可以被直接設(shè)定在這個屬性當(dāng)中。 url[,[driver][,[user][,password]]]url為聯(lián)機數(shù)據(jù)庫的來源位置,即ODBC數(shù)據(jù)源。driver為所需的驅(qū)動程序類名稱。user與password則分別是數(shù)據(jù)庫的聯(lián)機賬號與密碼,如果數(shù)據(jù)庫沒有設(shè)定,則這兩個值可以被省略。23JSP動態(tài)網(wǎng)頁新技術(shù)dataSourcedataSource代表屬性設(shè)定屬性屬性值urljdbc:odbc:webDatadriversun.jdbc.odbc.JdbcOdbcDriver24JSP動態(tài)網(wǎng)頁新技術(shù)屬性設(shè)定屬性屬性值urljdbc:odbc:webD<sql:setDataSource>標(biāo)簽設(shè)定數(shù)據(jù)源

通過<sql:setDataSource>標(biāo)簽設(shè)定數(shù)據(jù)來源: <sql:setDataSourcedataSource="jdbc:odbc:WData,sun.jdbc.odbc.JdbcOdbcDriver"/>不使用數(shù)據(jù)源的設(shè)定方式如下:<sql:setDataSourcedriver="sun.jdbc.odbc.JdbcOdbcDriver"url="jdbc:odbc:WData"/>25JSP動態(tài)網(wǎng)頁新技術(shù)<sql:setDataSource>標(biāo)簽設(shè)定數(shù)據(jù)源通過<<sql:query>語法1:無本體內(nèi)容

<sql:querysql="sqlQuery"var="varName"[scope="{page|request|session|application}"][dataSource="dataSource"][maxRows="maxRows"][startRow="startRow"]/>26JSP動態(tài)網(wǎng)頁新技術(shù)<sql:query>語法1:無本體內(nèi)容26JSP動態(tài)網(wǎng)<sql:query>語法2:包含指定搜尋參數(shù)的本體內(nèi)容

<sql:querysql="sqlQuery"var="varName"[scope="{page|request|session|application}"][dataSource="dataSource"][maxRows="maxRows"][startRow="startRow"]> <sql:param>actions</sql:query>27JSP動態(tài)網(wǎng)頁新技術(shù)<sql:query>語法2:包含指定搜尋參數(shù)的本體內(nèi)容2<sql:query>語法3:包含指定搜尋參數(shù)與選擇性參數(shù)的本體內(nèi)容

<sql:queryvar="varName"[scope=”{page|request|session|application}”][dataSource=”dataSource”][maxRows="maxRows"][startRow="startRow"]>queryoptional<sql:param>actions28JSP動態(tài)網(wǎng)頁新技術(shù)<sql:query>語法3:包含指定搜尋參數(shù)與選擇性參數(shù)的<sql:query>-屬性屬性動態(tài)類型說明sql是包含SELECT之SQL字符串SQL指令dataSource是Stringorjavax.sql.DataSource數(shù)據(jù)源名稱字符串,可指定為JNDI數(shù)據(jù)源或是JDBC聯(lián)機字符串maxRows是StringSQL指令返回結(jié)果當(dāng)中所包含的最大數(shù)據(jù)筆數(shù),設(shè)定值省略或是等于-1時,返回結(jié)果將沒有限制startRow是StringSQL指令開始返回的數(shù)據(jù)內(nèi)容索引var否String儲存輸出結(jié)果scope否String變量范圍29JSP動態(tài)網(wǎng)頁新技術(shù)<sql:query>-屬性屬性動態(tài)類型說明<sql:param>

語法1:將參數(shù)值指定給屬性value

<sql:paramvalue="value"/>語法2:將參數(shù)值指定給本體內(nèi)容

<sql:param> parametervalue</sql:param>30JSP動態(tài)網(wǎng)頁新技術(shù)<sql:param>語法1:將參數(shù)值指定給屬性value<sql:update>

語法1:無本體內(nèi)容<sql:updatesql="sqlUpdate"[dataSource=”dataSource”][var="varName"][scope=”{page|request|session|application}”]/>31JSP動態(tài)網(wǎng)頁新技術(shù)<sql:update>語法1:無本體內(nèi)容31JSP動<sql:update>

語法2:包含指定搜尋參數(shù)的本體內(nèi)容

<sql:updatesql="sqlUpdate"[dataSource=”dataSource”][v

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論