《數(shù)據(jù)庫連接》PPT課件

上傳人:san****019 文檔編號:21617522 上傳時間:2021-05-05 格式:PPT 頁數(shù):40 大小:502.50KB
收藏 版權申訴 舉報 下載
《數(shù)據(jù)庫連接》PPT課件_第1頁
第1頁 / 共40頁
《數(shù)據(jù)庫連接》PPT課件_第2頁
第2頁 / 共40頁
《數(shù)據(jù)庫連接》PPT課件_第3頁
第3頁 / 共40頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《數(shù)據(jù)庫連接》PPT課件》由會員分享,可在線閱讀,更多相關《《數(shù)據(jù)庫連接》PPT課件(40頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第六章 JSP中數(shù)據(jù)庫的使用主 講:曹 瑩 重點+難點l數(shù)據(jù)庫環(huán)境的配置l利用JDBC驅動實現(xiàn)對數(shù)據(jù)庫的訪問 6.1 數(shù)據(jù)庫和常用的SQL語句l數(shù)據(jù)庫管理系統(tǒng)(DBMS)是一個軟件系統(tǒng),它具有存儲、檢索和修改數(shù)據(jù)的功能,數(shù)據(jù)庫關聯(lián)系統(tǒng)具有4個發(fā)展階段。層次型、網(wǎng)絡型、關系型和關系對象型。l我們使用的是SQL Server2000,mysqllJDBC是Sun公司提供的一組類和接口,程序員可以利用這組類和接口與數(shù)據(jù)庫進行通信。JDBC接口,非常方便的實現(xiàn)了在java中連接數(shù)據(jù)庫 SQL語句l創(chuàng)建刪除數(shù)據(jù)庫create database bookdrop database bookl創(chuàng)建刪除表cr

2、eate table item (item_Id int, item_name varchar(20)drop table iteml更改表的結構alter table item add item_dis varchar(100)alter table item drop item SQL語句l創(chuàng)建刪除視圖create view products(productname,quantity,listprice) as select p.productname,v.qty,i.listprice from product p,inventory v,item i where p.productId

3、=i.productid and itwmid=v.itemiddelete view productsl插入一條語句insert語句是用來向表中添加記錄的insert into item values(1,“計算機”,“計算機工程類的書籍”) SQL語句l在表中刪除數(shù)據(jù)delete刪除表中已經存在的一條或多條記錄delete from item where item_Id=1;l更新表中的數(shù)據(jù)update語句用來修改表中已經存在的一條或多條記錄update item set intem_name=“法學” where item_Id=1 SQL語句l條件子句(1)where語句使用where

4、可以選擇滿足條件的特定記錄(2)in和not in選擇列值與列值表中某一個值相等的相關信息(3)betweenand和not betweenand選擇列值在某個范圍的記錄(4)like和not like(5)is null和not null(6)邏輯運算and和or(7)order by語句 6.2 JDBC技術和驅動程序6.2.1JDBC技術介紹lJDBC API為Java開發(fā)人員使用數(shù)據(jù)庫提供了統(tǒng)一的編程接口,它由一組Java類和接口組成。JDBC API使得開發(fā)人員可與使用純Java語言的方式來連接數(shù)據(jù)庫,并進行操作。l企業(yè)級環(huán)境中進行的數(shù)據(jù)庫操作遠遠不只是 連接數(shù)據(jù)庫并執(zhí)行語句,還需要

5、考慮其它方面的要求。包括使用連接緩沖池來優(yōu)化資源的使用,實現(xiàn)分布式事務處理。 JDBC 3.0 版本包含了兩個包:Java.sql和Javax.sqllJava.sql 這個包中的類和接口主要是針對基本的數(shù)據(jù)庫編程服務,如生成連接、執(zhí)行語句、以及準備語句和運行批處理查詢等。同時也有一些 高級操作,比如批處理更新、事物隔離和可滾動結果集等。lJavax.sql 這個包主要是為數(shù)據(jù)庫方面的高級操作提供接口和類。如連接管理類、創(chuàng)建語句類 6.2.2數(shù)據(jù)庫驅動器程序l數(shù)據(jù)庫廠商一般會提供一組API訪問數(shù)據(jù)庫,有些廠商也專門提供數(shù)據(jù)庫驅動程序,并且這些產品除了執(zhí)行驅動的功能外,往往還提供一些額外的服務。

6、lJDBC驅動程序是數(shù)據(jù)庫廠商根據(jù)Sun公司提供的JDBC接口標準提供的一組實現(xiàn)類。JDBC 驅動程序的類型 JDBC-ODBC橋驅動程序及ODBC驅動程序 本地API部分Java驅動程序 JDBC-Net 純Java驅動程序 本地協(xié)議純Java驅動程序 有4種類型的數(shù)據(jù)庫驅動程序lJDBC-ODBC橋 通過JDBC-ODBC橋,開發(fā)者可以使用JDBC訪問一個ODBC數(shù)據(jù)源。 JDBC-ODBC橋驅動程序為Java應用程序提供了一種把JDBC調用映射成ODBC調用的方法。因此在客戶端計算機上安裝一個ODBC驅動。 缺點:效率相對底下。l部分Java,部分本機驅動程序 這種驅動程序使用Java實

7、現(xiàn)與數(shù)據(jù)庫廠商專有API混合形式來提供數(shù)據(jù)訪問。它比JDBC-ODBC橋的形式快。在這種方勢力,必須在內閣運行Java應用程序的客戶端安裝驅動程序和廠商專有的API。現(xiàn)在大多數(shù)的數(shù)據(jù)庫廠商都在其數(shù)據(jù)庫產品中提供該驅動程序 l中間數(shù)據(jù)訪問服務器 這種形式使用中間數(shù)據(jù)訪問服務器。通過這種服務器,他可以把Java客戶端連接到多個數(shù)據(jù)庫服務器上。他不需要客戶端的數(shù)據(jù)庫驅動,而是使用網(wǎng)絡-服務器中層來訪問一個數(shù)據(jù)庫。該類型的驅動程序使用網(wǎng)絡協(xié)議,并完全通過Java驅動,他為Java應用程序提供了一種進行JDBC調用的機制。l純Java驅動程序 這種方式使用廠商專有的網(wǎng)絡協(xié)議把JDBC API調用轉換稱直

8、接的網(wǎng)絡調用,這種方式的本質是使用套接字進行編程。純Java驅動運行在客戶端,并且直接訪問數(shù)據(jù)庫。它的使用比較簡單,客戶端不需要安裝任何中間件或者運行庫?,F(xiàn)在大部分廠商都提供第4類驅動程序的支持。 四種訪問方式比較l第1、2類驅動程序是數(shù)據(jù)庫廠商為提供第4類JDBC驅動程序的一種過渡解決方案,例如通過JDBC訪問Access數(shù)據(jù)庫。l第3類驅動程序適合那種需要同時連接多個不同種類的數(shù)據(jù)庫, 并且對并發(fā)連接要求高的三層應用程序中。l第1、2、4類驅動程序常用于C/S模式的應用程序中。l訪問速度:241穩(wěn)定性:421 6.3 JDBC常用接口使用介紹1.Driver接口 每個數(shù)據(jù)庫驅動程序必須實現(xiàn)

9、Driver接口。對于JSP開發(fā)者而言,只要使用Driver接口就可以了。在編程中要連接數(shù)據(jù)庫,必須先裝載特定廠商提供的數(shù)據(jù)庫驅動程序(Driver),不同驅動程序的裝載方法。 使用JDBC-ODBC BridgeDriver,這樣裝載:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 對于Access適用 使用 JDBC Driver,這樣裝載 Class.forName(“jdbc.driver_class_name”);在使用Class.forName之前,先適用import語句導入java.sql包。 import java.sql.*;裝載

10、MS SQLServer 驅動:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);裝載 MySQL JDBC驅動:Class.forName(“org.git.mm.mysql.Driver”);裝載 Oracle JDBC驅動:Class.forName(“oracle.jdbc.driver.OracleDriver”); 2. DriverManager(驅動程序管理器) DriverManager 是JDBC(Java數(shù)據(jù)庫連接)的管理層。作用于用戶和驅動程序之間。DriverManager 可以跟蹤驅動程序,并

11、在數(shù)據(jù)庫和相應驅動程序之間建立連接。 DriverManager激發(fā)getConnection()方法時, DriverManager首先從它已加載的驅動程序池中找到一個可以接受該數(shù)據(jù)庫URL的驅動程序,然后請求該驅動程序使用相關的數(shù)據(jù)庫URL連接到數(shù)據(jù)庫中,于是getConnection()方法建立了與數(shù)據(jù)庫連接。 DriverManager.getConnection()方法(靜態(tài)的)static connection getConnection(String url);static connection getConnection(String url,String info);stat

12、ic connection getConnection(String url,String name,String pwd);URL:類似于其他場合的URL,語法如下:jdbc:jdbc:表示 協(xié)議,他是唯一的,JDBC只有這一種協(xié)議子協(xié)議:主要用于識別數(shù)據(jù)庫驅動程序,也就是說,不同的數(shù)據(jù)庫驅動程序的子協(xié)議不同子名:它屬于專門的驅動程序,不同的專有驅動程序可以采用不同的實現(xiàn) 數(shù)據(jù)庫連接字符串數(shù)據(jù)庫 驅動程序名稱URLMicrosoft Access sun.jdbc.odbc.JdbcOdbcDriver jdbc:odbc:studentMicrosoft Sql Server 2000 c

13、om.microsoft.jdbc.sqlserver.SQLServerDriver jdbc:microsoft:sqlserver:/localhost:1433;databasename=studentMicrosoft Sql Server 2005 com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver:/localhost:2667;databasename=student Oracle 9i oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:localhost:152

14、1:studentjdbc:oracle:oci:student 3.Connection一個Connection表示與一個特定數(shù)據(jù)庫的會話。 Connection對象代表與數(shù)據(jù)庫的連接。 連接過程包括所執(zhí)行的SQL語句和在連接上所返回的結果。 Connection conn= DriverManager.getConnection(url,login,pwd); Connection接口是JSP編程中使用最頻繁的接口之一。Connection接口中常用到的方法: close():關閉連接。isclose():判斷連接是否關閉。 createStatement():創(chuàng)建SQL語句對象。 get

15、AutoCommit():獲得當前自動提交狀態(tài)。commit():提交對數(shù)據(jù)庫的更改,使更改生效。setAutoCommit(boolean value):設置連接是否處于自動提交狀態(tài)。rollback():回滾上一次提交或回滾操作后的所有更改prepareStatement(String sql):可以被預編譯存放在prepareStatement對象中,該對象用于有效地多次執(zhí)行該語句。prepareCall(String sql):返回值是創(chuàng)建的CallableStatement 對象,可以用來處理一個SQL存儲過程setReadOnly():可以把一個連接設置為只讀狀態(tài)。isReadOn

16、ly():檢測該連接是否存在只讀狀態(tài) 4.StatementStatement對象代表SQL語句??捎糜趯QL語句發(fā)送至數(shù)據(jù)庫。Statement對象存在3種。 Statement對象,用來執(zhí)行基本的SQL語句。 PrepareStatement對象,從Statement繼承,用于提供可以查詢信息一起預編譯的語句。 CallableStatement,它繼承自PrepareStatement,用來執(zhí)行數(shù)據(jù)庫中的存儲過程。Statement常用的方法: cancle():用于一個線程取消另一個線程正在執(zhí)行的一條語句。 close():用來關閉語句。同時立即釋放該語句的數(shù)據(jù)庫和JDBC資源。如果

17、它有相應產生的ResultSet,則ResultSet也會被關閉。execute(String sql): 執(zhí)行一條可能返回多個結果的SQL語句。返回布爾值。若有ResultSet,則返回true,如果它是一個更新數(shù)據(jù)或沒有其它結果,則返回false。executeQurey(String sql):執(zhí)行一個返回單個ResultSet的SQL語句,返回值是由查詢產生的數(shù)據(jù)ResultSet。executeUpdate(String sql):執(zhí)行一條insert、update或delete語句或是沒有返回值的SQL語句。該方法返回語句影響的行數(shù),如果是沒有影響的行數(shù)則返回0。 getResul

18、tSet():得到當前的ResultSet的結果。getUpdateCount():得到更新的數(shù)量,如果結果是一個ResultSet或沒有其他結果,則返回-1。5.PrepareStatementPrepareStatement類對象封裝一條預編譯的SQL語句,用于高效地多次執(zhí)行該語句。常用的方法:clearParameters():立即釋放當前參數(shù)值使用的資源execute():執(zhí)行一條可能返回多個結果的SQL語句,返回一個布爾值。如果下一個結果是ResultSet,則返回true,否則返回false executeQuery():執(zhí)行準備好的SQL查詢并返回ResultSet execut

19、eUpdate():執(zhí)行一條insert、update或delete語句或是沒有返回值的SQL語句。setBoolean(int parameterIndex,boolean x);setByte(int parameterIndex,byte x)setBytes(int parameterIndex,byte x)setDate(int parameterIndex,Date x)setDouble(int parameterIndex,double x)setFloat(int parameterIndex,float x)setInt(int parameterIndex,int x)

20、setShort(int parameterIndex,short x) 6.ResultSet ResultSet 類可用來接受執(zhí)行SQL查詢語句后得到的記錄集。 JDBC連接數(shù)據(jù)庫流程開 始導入 java.sql包 加載并注冊驅動程序創(chuàng)建一個 Connection 對象創(chuàng)建一個 Statement 對象執(zhí)行SQL語句 關閉ResultSet 對象關閉Statement對象關閉連接結 束使用ResultSet對象 程序演示 演示創(chuàng)建數(shù)據(jù)庫連接的具體步驟 錯誤提示lsocket establish error錯誤的解決方法檢查SQL Server服務是否啟動對于Windows XP、Windows 2003操作系統(tǒng),確保SQL Servler 2000升級至sp3以上版本(用netstat n -a)查看端口是否打開如果系統(tǒng)安裝了防火墻軟件,請暫時關閉實時監(jiān)控選項 記錄查詢實例 實例 向數(shù)據(jù)庫中插入記錄 代碼 刪除一條記錄 代碼 修改一條記錄:

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!