JSP訪問(wèn)數(shù)據(jù)庫(kù)_第1頁(yè)
JSP訪問(wèn)數(shù)據(jù)庫(kù)_第2頁(yè)
JSP訪問(wèn)數(shù)據(jù)庫(kù)_第3頁(yè)
JSP訪問(wèn)數(shù)據(jù)庫(kù)_第4頁(yè)
JSP訪問(wèn)數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩44頁(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)介

1、第第7章章 JDBC數(shù)據(jù)訪問(wèn)接口數(shù)據(jù)訪問(wèn)接口內(nèi)容提要n介紹介紹JDBC的結(jié)構(gòu)。的結(jié)構(gòu)。n介紹如何利用介紹如何利用SQL指令操作數(shù)據(jù)庫(kù)以及指令操作數(shù)據(jù)庫(kù)以及常用的常用的SQL函數(shù)的使用。函數(shù)的使用。n重點(diǎn)介紹重點(diǎn)介紹JDBC訪問(wèn)數(shù)據(jù)庫(kù)的四種基本形訪問(wèn)數(shù)據(jù)庫(kù)的四種基本形式式n事務(wù)處理事務(wù)處理n分頁(yè)顯示分頁(yè)顯示n利用利用JavaBean操作數(shù)據(jù)庫(kù)。操作數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)簡(jiǎn)介 n作為有效的數(shù)據(jù)存儲(chǔ)和組織管理工具,數(shù)據(jù)庫(kù)的應(yīng)用日益廣泛n目前主流的數(shù)據(jù)庫(kù)產(chǎn)品有Oracle、SQL Server、DB2和SyBase等多種。n在數(shù)據(jù)庫(kù)開(kāi)發(fā)領(lǐng)域中,有三個(gè)方面需要掌握:SQL語(yǔ)言、ODBC數(shù)據(jù)訪問(wèn)接口和JD

2、BC數(shù)據(jù)庫(kù)訪問(wèn)接口。SQL語(yǔ)言 nSQL(Structured Query Language)是使用關(guān)系模型的數(shù)據(jù)庫(kù)語(yǔ)言,用于和各類數(shù)據(jù)庫(kù)連接,提供通用的數(shù)據(jù)管理和查詢功能。SQL語(yǔ)言最初由IBM公司開(kāi)發(fā),實(shí)現(xiàn)了關(guān)系數(shù)據(jù)庫(kù)中的信息檢索。后幾經(jīng)修改和完善,被國(guó)際標(biāo)準(zhǔn)化組織確定為國(guó)際標(biāo)準(zhǔn),目前執(zhí)行的是1992年制定的SQL-92標(biāo)準(zhǔn)。nSQL可以為各種支持SQL-92標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)所接受和處理,通常各種DBMS都提供圖形用戶界面,以使用戶直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。但SQL語(yǔ)言本身并不是完整的編程語(yǔ)言,還需要與其他高級(jí)編程語(yǔ)言配合,才能實(shí)現(xiàn)應(yīng)用程序?qū)?shù)據(jù)庫(kù)的訪問(wèn)操作。ODBC數(shù)據(jù)訪問(wèn)接

3、口 n開(kāi)放式數(shù)據(jù)庫(kù)互連ODBC(Open DataBase Connectivity)是微軟公司開(kāi)發(fā)的一套開(kāi)發(fā)數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用程序接口規(guī)范,它支持應(yīng)用程序以標(biāo)準(zhǔn)的ODBC函數(shù)和SQL語(yǔ)句操作各種不同的數(shù)據(jù)庫(kù)。 JDBC數(shù)據(jù)訪問(wèn)接口 n為支持Java程序的數(shù)據(jù)庫(kù)操作功能,Java語(yǔ)言采用了專門Java數(shù)據(jù)庫(kù)編程接口(JDBC,Java DataBase Connectivity),用于在Java程序中實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作功能并簡(jiǎn)化操作過(guò)程。JDBC支持基本SQL語(yǔ)句,提供多樣化的數(shù)據(jù)庫(kù)連接方式,為各種不同的數(shù)據(jù)庫(kù)提供統(tǒng)一的操作界面 SQL語(yǔ)言概述 nSQL(Structured Query Langua

4、ge)是關(guān)系型數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言,是由國(guó)際標(biāo)準(zhǔn)組織提出的,各種關(guān)系型數(shù)據(jù)庫(kù)都支持SQL指令,Oracle在基本的SQL基礎(chǔ)上進(jìn)行了擴(kuò)充。nSQL語(yǔ)句有如下的兩大特點(diǎn) n(1)SQL是一種類似于英語(yǔ)的語(yǔ)言,很容易理解和書寫。n(2)SQL語(yǔ)言是非過(guò)程化的語(yǔ)言(第四代語(yǔ)言)。SQL集DDL(Data Definition Language:數(shù)據(jù)定義語(yǔ)言),DML(Data Manipulation Language:數(shù)據(jù)操作語(yǔ)言)和DCL(Data Control Language:數(shù)據(jù)控制語(yǔ)言)于一體。用SQL語(yǔ)言可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)生命周期的全部活動(dòng)。 SQL語(yǔ)句分類 SQL分類描述數(shù)據(jù)定義語(yǔ)言(DD

5、L)數(shù)據(jù)定義語(yǔ)言(DDL)用于定義、修改或者刪除數(shù)據(jù)庫(kù)對(duì)象,如Create Table等數(shù)據(jù)操縱語(yǔ)言(DQL)數(shù)據(jù)查詢語(yǔ)句(Data Query Language,DQL)用于對(duì)數(shù)據(jù)進(jìn)行檢索。如最常用的Select語(yǔ)句數(shù)據(jù)操縱語(yǔ)言(DML)數(shù)據(jù)操縱語(yǔ)言(DML)用于訪問(wèn)、建立或者操縱在數(shù)據(jù)庫(kù)中已經(jīng)存在數(shù)據(jù),如Select、Insert、Update和Delete等等。事務(wù)控制語(yǔ)言(TCL)事務(wù)控制語(yǔ)言(Transact Control Language)管理DML語(yǔ)句所做的修改,是否保存修改或者放棄修改。如:Commit、Rollback、Savepoint、Set Transaction等命

6、令。數(shù)據(jù)控制語(yǔ)言(DCL)數(shù)據(jù)控制語(yǔ)言(DCL)管理對(duì)數(shù)據(jù)庫(kù)內(nèi)對(duì)象的訪問(wèn)權(quán)限和授予和回收,如Grant、Revoke等等。基本SQL語(yǔ)句 n基本的SQL語(yǔ)句包括DQL和DML。也就是對(duì)數(shù)據(jù)庫(kù)最常用的四大基本操作:查詢(Select)、插入(Insert)、更新(Update)和刪除(Delete) DQL的3種基本格式 n1. 基本句型一:(最簡(jiǎn)單的SELECT語(yǔ)句)nSELECT 字段名 FROM 數(shù)據(jù)表n例1. SELECT * FROM graden功能說(shuō)明:將grade表中的所有字段取出來(lái)。n例2. SELECT 學(xué)號(hào),姓名 FROM graden功能說(shuō)明:將grade表中學(xué)號(hào)和姓名字

7、段取出來(lái)。n例3. SELECT學(xué)號(hào),姓名,語(yǔ)文+數(shù)學(xué)+英語(yǔ) as 總成績(jī) FROM graden功能說(shuō)明:將grade表中的學(xué)號(hào)和姓名取出來(lái),并將語(yǔ)文、數(shù)學(xué)和英語(yǔ)成績(jī)相加產(chǎn)生虛擬列總成績(jī)。2. 基本句型二:使用條件查詢nSELECT字段名 FROM數(shù)據(jù)表 WHERE 篩選條件n測(cè)試句型如下。n例1. SELECT * FROM grade WHERE數(shù)學(xué)60n功能說(shuō)明:把所有數(shù)學(xué)成績(jī)大于60分的記錄選出來(lái)。n例2. SELECT * FROM grade WHERE數(shù)學(xué)=300 or 語(yǔ)文=300n功能說(shuō)明:把數(shù)學(xué)成績(jī)等于300分或者語(yǔ)文成績(jī)等于300分的人選出來(lái)。n例3. Like子句基本

8、格式一:“_”匹配。n功能說(shuō)明:每個(gè)下劃線匹配一個(gè)任意字符,注意只匹配一個(gè)字符。比如:姓名 like _敏,匹配姓名以“敏”字結(jié)尾且字?jǐn)?shù)等于二的所有數(shù)據(jù)記錄,如:“張敏”。n例4. Like子句基本格式二:“%”匹配。n比如:姓名 Like %敏%,匹配姓名中出現(xiàn)“敏”的所有數(shù)據(jù)記錄,如:“周惠敏”,“于敏”、“敏大”、“敏二”等。比如要在數(shù)據(jù)庫(kù)中查詢姓江的人,只要利用一條SQL語(yǔ)句就可以了,SELECT * FROM 數(shù)據(jù)庫(kù)表 WHERE 姓名 Like 江%。3. 基本句型三:(進(jìn)行排序)nSELECT字段名 FROM 數(shù)據(jù)表 ORDER BY 字段名n測(cè)試句型如下。n(1)SELECT

9、* FROM grade ORDER BY數(shù)學(xué) 注:從低到高排序n功能說(shuō)明:從grade表中取出所有字段,并按數(shù)學(xué)成績(jī)排序。n(2)SELECT * FROM grade ORDER BY數(shù)學(xué),語(yǔ)文n功能說(shuō)明:從grade表中取出所有字段,并按數(shù)學(xué)成績(jī)排序,如果數(shù)學(xué)成績(jī)相同則按照語(yǔ)文成績(jī)排序。n(3)SELECT * FROM grade ORDER BY數(shù)學(xué) desc 注:從高到低排序n功能說(shuō)明:從grade表中取出所有字段,并按數(shù)學(xué)成績(jī)倒序。n(4)SELECT top 5 * FROM graden功能說(shuō)明:從grade表中取出前五條記錄的所有字段。DML的基本格式n(1)DELETE指

10、令:刪除數(shù)據(jù)記錄。n基本語(yǔ)法:DELETE FROM 數(shù)據(jù)表 WHERE 條件n例:DELETE from grade WHERE數(shù)學(xué)=0 n功能說(shuō)明:刪除所有數(shù)學(xué)成績(jī)?yōu)榱愕挠涗?,如果沒(méi)有WHERE子句,則刪除所有記錄。n(2)UPDATE指令:更新數(shù)據(jù)記錄。n基本語(yǔ)法:UPDATE 數(shù)據(jù)表 SET 字段值=新值 WHERE條件n例1:UPDATE grade SET 數(shù)學(xué)=數(shù)學(xué)+10 說(shuō)明:將grade表中所有人的成績(jī)加10分 n例2:UPDATE grade SET 數(shù)學(xué)=100 WHERE 姓名 like %敏% n功能說(shuō)明:將姓名中含有敏的人的數(shù)學(xué)成績(jī)更新為100分INSERT INT

11、O指令n(3)INSERT INTO指令:添加數(shù)據(jù)記錄。n基本格式1:INSERT INTO 數(shù)據(jù)表VALUES (字段新值)n基本格式2:INSERT INTO 數(shù)據(jù)表(字段一,字段二,) VALUES (字段新值)n其中關(guān)鍵字兩種格式的區(qū)別是:當(dāng)values含有數(shù)據(jù)庫(kù)表所有字段的值,并且順序和數(shù)據(jù)庫(kù)字段一致時(shí),就可以省略數(shù)據(jù)庫(kù)表后面的字段名稱。n例1:INSERT INTO grade(學(xué)號(hào), 姓名, 數(shù)學(xué)) VALUES (1234, 周潤(rùn)發(fā),70)n例2:INSERT INTO grade VALUES (5678, 周潤(rùn)發(fā),70,80,90)n功能說(shuō)明:該語(yǔ)句等價(jià)于:nINSERT

12、INTO grade(學(xué)號(hào), 姓名, 語(yǔ)文, 數(shù)學(xué), 英語(yǔ)) VALUES (5678, 周潤(rùn)發(fā),70,80,90)聚合函數(shù) n聚合函數(shù)在信息管理系統(tǒng)經(jīng)常使用,功能是做一些基本的統(tǒng)計(jì)和計(jì)算。n聚合函數(shù)有5個(gè),分別是SUM函數(shù)、AVG函數(shù)、COUNT函數(shù)、MAX函數(shù)和MIN函數(shù)。 SUN函數(shù)n(1)SUN函數(shù),功能是算出某個(gè)字段的總值。n例. SELECT SUM(數(shù)學(xué)) As Total FROM graden功能說(shuō)明:求出所有學(xué)生數(shù)學(xué)成績(jī)總和,這個(gè)數(shù)值的列名為Total。在SQL輸入窗口中輸入,如圖 聚合函數(shù)n(2)AVG函數(shù),功能是算出某個(gè)字段的平均值。n例. SELECT AVG(數(shù)學(xué))

13、 As Average FROM graden功能說(shuō)明:求出所有學(xué)生數(shù)學(xué)成績(jī)平均分,這個(gè)數(shù)值的列名為Average。n(3)COUNT函數(shù),功能是算出返回記錄的行數(shù)。n例. SELECT COUNT(*) As Counts FROM graden功能說(shuō)明:求出滿足條件的記錄總數(shù)。n(4)MAX函數(shù),功能是算出某個(gè)字段的最大值。n例. SELECT MAX(數(shù)學(xué)) As First FROM graden功能說(shuō)明:求出所有學(xué)生數(shù)學(xué)成績(jī)的最高分,這個(gè)數(shù)值的列名為First。n(5)MIN函數(shù),功能是算出某個(gè)字段的總值。n例. SELECT MIN(數(shù)學(xué)) As Last FROM graden功

14、能說(shuō)明:求出所有學(xué)生數(shù)學(xué)成績(jī)的最低分,這個(gè)數(shù)值的列名為L(zhǎng)ast。分組查詢 n分組查詢包括GROUP BY和HAVING關(guān)鍵字。比如計(jì)算某班男生女生的數(shù)學(xué)平均分,利用可以利用分組查詢完成。grade表中添加一列“性別”,如person1.mdb庫(kù)中的grade表, n可以使用“SELECT 性別, AVG(數(shù)學(xué)) as 平均分 FROM grade GROUP BY 性別”得到男生和女生的平均分,執(zhí)行的結(jié)果如圖 n計(jì)算所有男生的數(shù)學(xué)平均成績(jī),有兩種方法:n(1)SELECT 性別, AVG(數(shù)學(xué)) as 平均分 FROM grade GROUP BY 性別 HAVING 性別=男n(2)SELE

15、CT 性別, AVG(數(shù)學(xué)) as 平均分 FROM grade WHERE 性別=男 GROUP BY 性別分組查詢n在使用分組查詢的時(shí)候,有4點(diǎn)需要注意。n(1)WHERE子句必須放在GROUP BY子句之前。n(2)HAVING子句中只能包含分組字段或者聚合函數(shù)。n(3)SELECT語(yǔ)句選擇的列只能是分組字段或者聚合函數(shù)。n(4)HAVING必須放在GROUP BY子句之后。交叉查詢 n考慮3個(gè)表:學(xué)生表(Student)、課程表(Course)和選課表(SC)表的關(guān)系如圖 交叉查詢n其中:n(1)學(xué)生表中的sno表示學(xué)生學(xué)號(hào),sname表示學(xué)生姓名。n(2)課程表中cno表示課程編號(hào),

16、cname表示課程的名稱。n(3)選課表中的sno表示學(xué)生學(xué)號(hào),cno表示課程編號(hào)。n查找選擇課程為“軟件工程”的所有同學(xué)姓名?可以利用如下的SQL語(yǔ)句。nSELECT b.sname FROM sc a, student b, course cnWHERE o=o nAND a.sno=b.sno and ame=軟件工程n其中“sc a”表示給表sc起個(gè)別名為a,同樣“student b”是給student表起個(gè)別名b。該查詢實(shí)現(xiàn)了三個(gè)表之間的交叉查詢。JDBC的四種類型 n目前,比較常見(jiàn)的JDBC驅(qū)動(dòng)程序可分為以下4種類型:n(1)JDBC-ODBC橋加ODBC驅(qū)動(dòng)程序:JDBC-ODB

17、C橋產(chǎn)品利用ODBC驅(qū)動(dòng)程序提供JDBC訪問(wèn)。在服務(wù)器上必須可以安裝ODBC驅(qū)動(dòng)程序。n(2)本地API:這種類型的驅(qū)動(dòng)程序把客戶機(jī)API上的JDBC調(diào)用轉(zhuǎn)換為Oracle、Sybase、Informix、DB2或其它DBMS的調(diào)用。n(3)JDBC網(wǎng)絡(luò)純Java驅(qū)動(dòng)程序:這種驅(qū)動(dòng)程序?qū)DBC轉(zhuǎn)換為與DBMS無(wú)關(guān)的網(wǎng)絡(luò)協(xié)議,之后這種協(xié)議又被某個(gè)服務(wù)器轉(zhuǎn)換為一種DBMS協(xié)議。這種網(wǎng)絡(luò)服務(wù)器中間件能夠?qū)⑺募僇ava客戶機(jī)連接到多種不同的數(shù)據(jù)庫(kù)上。n(4)本地協(xié)議純Java驅(qū)動(dòng)程序:這種類型的驅(qū)動(dòng)程序?qū)DBC調(diào)用直接轉(zhuǎn)換為DBMS所使用的網(wǎng)絡(luò)協(xié)議。這將允許從客戶機(jī)機(jī)器上直接調(diào)用DBMS服務(wù)器,

18、是Intranet訪問(wèn)的一個(gè)很實(shí)用的解決方法。n第3類和第4類驅(qū)動(dòng)程序?qū)⒊蔀镴DBC訪問(wèn)數(shù)據(jù)庫(kù)的首選方法。第1類和第2類驅(qū)動(dòng)程序在直接的純Java驅(qū)動(dòng)程序還沒(méi)有上市前會(huì)作為過(guò)渡方案來(lái)使用。數(shù)據(jù)驅(qū)動(dòng)程序 n使用JDBC的第一步是安裝驅(qū)動(dòng)程序。大多數(shù)數(shù)據(jù)庫(kù)都有JDBC驅(qū)動(dòng)程序,常用的JDBC驅(qū)動(dòng)程序如圖所示。Connection對(duì)象 n建立是建立與數(shù)據(jù)庫(kù)之間的連接,也就是創(chuàng)建一個(gè)Connection的實(shí)例。DriverManager類的getConnection()方法將建立數(shù)據(jù)庫(kù)的連接:npublic static Connection getConnection(String url, Str

19、ing user, String password) throws SQLExceptionn在程序的最后,應(yīng)該關(guān)閉Connection對(duì)象:public void close() throws SQLExceptionStatement對(duì)象 nStatement對(duì)象用于將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)中。n存在3種Statement對(duì)象:n(1)Statement;n(2)PreparedStatement(從Statement繼承而來(lái));n(3)CallableStatement(從PreparedStatement繼承而來(lái))。Statement接口nStatement接口提供了兩種執(zhí)行SQL語(yǔ)句

20、的常用方法:npublic ResultSet executeQuery(String sql) throws SQLExceptionn用于產(chǎn)生單個(gè)ResultSet的語(yǔ)句,例如SELECT語(yǔ)句。npublic int executeUpdate(String sql) throws SQLExceptionn用于執(zhí)行INSERT、UPDATE或DELETE語(yǔ)句以及SQL DDL語(yǔ)句,例如CREATE TABLE和DROP TABLE。該方法返回一個(gè)整數(shù),指示受影響的行數(shù)。ResultSet對(duì)象 nResultSet包含符合SQL語(yǔ)句執(zhí)行結(jié)果所有行,并且它通過(guò)一套get方法提供了對(duì)這些行中數(shù)

21、據(jù)的訪問(wèn),常用的get方法有:nint getInt(int columnIndex),取得當(dāng)前行中第columnIndex列的整數(shù)的值。nint getInt(String columnName),取得當(dāng)前行中列名為columnName的整數(shù)的值。nDate getDate(int columnIndex),取得當(dāng)前行中第columnIndex列的日期的值。nDate getDate(String columnName),取得當(dāng)前行中列名為columnName的日期的值。npublic String getString(int columnIndex),取得當(dāng)前行中第columnIndex列

22、的字符串的值。npublic String getString(String columnName),取得當(dāng)前行中列名為columnName的字符串的值。其他類型的get方法可以參考java文檔。nResultSet維護(hù)指向其當(dāng)前數(shù)據(jù)行的光標(biāo),讓光標(biāo)向下移動(dòng)一行的方法是:npublic boolean next() throws SQLExceptionODBC-JDBC橋讀取Access數(shù)據(jù)庫(kù) 案例名稱:使用案例名稱:使用JDBC-ODBC 橋讀取橋讀取Access數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)程序名稱:程序名稱:7-01.jsp操作操作Access數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)案例名稱:使用案例名稱:使用JDBC-ODBC

23、橋操作橋操作Access數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)程序名稱:程序名稱:7-02.jspPreparedStatement對(duì)象 案例名稱:使用案例名稱:使用PreparedStatement程序名稱:程序名稱:7-03.jspJDBC四種數(shù)據(jù)訪問(wèn)格式 n格式一:執(zhí)行基本SQL語(yǔ)句 案例名稱:數(shù)據(jù)訪問(wèn)基本格式一案例名稱:數(shù)據(jù)訪問(wèn)基本格式一Class.forName(JDBC驅(qū)動(dòng)程序);Connection conn=DriverManager.getConnection(相應(yīng)JDBC驅(qū)動(dòng)程序的連接串);Statement stmt=conn.createStatement();ResultSet rs=stmt

24、.executeQuery(DQL語(yǔ)句);/如果是數(shù)據(jù)查詢stmt.executeUpdate(DML語(yǔ)句);/如果是數(shù)據(jù)操作格式二:實(shí)現(xiàn)分頁(yè) n在JDBC1.0中,結(jié)果只能利用next方法每次向前移動(dòng)一行。在JDBC2.0中,增加了一類新的結(jié)果集,稱為可滾動(dòng)結(jié)果集 案例名稱:數(shù)據(jù)訪問(wèn)基本格式二案例名稱:數(shù)據(jù)訪問(wèn)基本格式二Class.forName(JDBC驅(qū)動(dòng)程序);Connection conn=DriverManager.getConnection(相應(yīng)JDBC驅(qū)動(dòng)程序的連接串);Statement stmt = connect.createStatement(結(jié)果集類型,結(jié)果集并發(fā)性)

25、;ResultSet rs=stmt.executeQuery(DQL語(yǔ)句);/如果是數(shù)據(jù)查詢stmt.executeUpdate(DML語(yǔ)句);/如果是數(shù)據(jù)操作結(jié)果集類型 n結(jié)果集類型有3種:nResultSet.TYPE_FORWORD_ONLY:指定ResultSet對(duì)象是不可滾動(dòng),這是默認(rèn)值。nResultSet.TYPE_SCOLL_INSENSITIVE:指定ResultSet對(duì)象是可滾動(dòng)的,但是對(duì)數(shù)據(jù)庫(kù)中修改不敏感。nResultSet.TYPE_SCOLL_SENSITIVE:指定ResultSet對(duì)象是可滾動(dòng)的,而且對(duì)數(shù)據(jù)庫(kù)的修改敏感。修改對(duì)結(jié)果集的影響 類型看到內(nèi)部更新看到

26、內(nèi)部刪除看到內(nèi)部插入看到外部更新看到外部刪除看到外部插入只向前是否否否否否可滾動(dòng)不敏感是是否否否否可滾動(dòng)敏感是是否是否否結(jié)果集的并發(fā)性n結(jié)果集的并發(fā)性(Concurrency)決定ResultSet對(duì)象是否可以修改數(shù)據(jù)庫(kù)中的行。可以使用ResultSet類中定義的int常量來(lái)指定結(jié)果集的并發(fā)性。nResultSet.CONCUR_READ_ONLY,指定ResultSet對(duì)象不能修改數(shù)據(jù)庫(kù),默認(rèn)值。nResultSet.CONCUR_UPDATABLE,指定ResultSet對(duì)象可以修改數(shù)據(jù)庫(kù)。格式三:執(zhí)行帶參數(shù)的SQL語(yǔ)句 案例名稱:數(shù)據(jù)訪問(wèn)基本格式三案例名稱:數(shù)據(jù)訪問(wèn)基本格式三Class.

27、forName(JDBC驅(qū)動(dòng)程序);Connection conn=DriverManager.getConnection(相應(yīng)JDBC驅(qū)動(dòng)程序的連接串);PreparedStatement stmt = connect.PreparedStatement (帶參數(shù)的SQL語(yǔ)句);pst.setInt(設(shè)置參數(shù)的值);ResultSet rs = pst.executeQuery(); /如果是數(shù)據(jù)查詢stmt.executeUpdate(); /如果是數(shù)據(jù)操作格式四:執(zhí)行存儲(chǔ)過(guò)程 案例名稱:數(shù)據(jù)訪問(wèn)基本格式四案例名稱:數(shù)據(jù)訪問(wèn)基本格式四Class.forName(JDBC驅(qū)動(dòng)程序);Conn

28、ection conn=DriverManager.getConnection(相應(yīng)JDBC驅(qū)動(dòng)程序的連接串);CallableStatement cs = con.prepareCall(call 存儲(chǔ)過(guò)程名(?, ?)cs.setInt(1, 設(shè)置參數(shù)的值); /設(shè)置輸入?yún)?shù)的值cs.execute (); /執(zhí)行存儲(chǔ)過(guò)程String strBack = cs.getString(2) /得到輸出參數(shù)的值使用JDBC訪問(wèn)數(shù)據(jù)庫(kù) n利用格式一讀取Excel數(shù)據(jù) 案例名稱:使用案例名稱:使用PreparedStatement程序名稱:程序名稱:7-04.jsp利用格式一實(shí)現(xiàn)事務(wù)處理 案例名稱:使用事務(wù)處理案例名稱:使用事務(wù)處理程序名稱:程序名稱:7-05.jsp動(dòng)態(tài)合成SQL語(yǔ)句 案例名稱:動(dòng)態(tài)合成案例名稱:動(dòng)態(tài)合成SQL語(yǔ)句語(yǔ)句程序名稱:程序名稱:7-06.jsp利用格式二實(shí)現(xiàn)分頁(yè)顯示 案例名稱:輸出某一條記錄案例名稱:輸出某一條記錄程序名稱:程序名稱:7-07.jsp實(shí)現(xiàn)分頁(yè)實(shí)現(xiàn)分頁(yè)案例名稱:實(shí)現(xiàn)分頁(yè)案例名稱:實(shí)現(xiàn)分頁(yè)程序名稱:程序名稱:7-08.jsp案例

溫馨提示

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