秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

數(shù)據(jù)庫連接(JDBC)及其.ppt

上傳人:za****8 文檔編號:15636148 上傳時間:2020-08-27 格式:PPT 頁數(shù):23 大?。?47.84KB
收藏 版權(quán)申訴 舉報 下載
數(shù)據(jù)庫連接(JDBC)及其.ppt_第1頁
第1頁 / 共23頁
數(shù)據(jù)庫連接(JDBC)及其.ppt_第2頁
第2頁 / 共23頁
數(shù)據(jù)庫連接(JDBC)及其.ppt_第3頁
第3頁 / 共23頁

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

9.9 積分

下載資源

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

資源描述:

《數(shù)據(jù)庫連接(JDBC)及其.ppt》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫連接(JDBC)及其.ppt(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第11章 數(shù)據(jù)庫連接(JDBC)及其應(yīng)用,本章要點: 數(shù)據(jù)源的配置 數(shù)據(jù)庫驅(qū)動程序加載的方式 數(shù)據(jù)庫操作的流程 事務(wù)控制 預(yù)查詢,11.1 JDBC基本編程概念,JDBC協(xié)議遵循了微軟公司的ODBC模型,并與ODBC建立在同一方案的基礎(chǔ)之上:遵循JDBC API協(xié)議的程序和JDBC驅(qū)動程序管理器通信,驅(qū)動程序管理器用嵌入的驅(qū)動程序訪問數(shù)據(jù)庫。 從程序設(shè)計的角度來看,用JDBC類編程與使用一般的Java類編程并沒有太大的不同。,11.1.1 設(shè)定ODBC數(shù)據(jù)源,------語法------2000版本 String URL=jdbc:microsoft:sqlserver://localhost

2、:1433; DatabaseName=news; Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); Connection con = DriverManager.getConnection(URL,sa,sa);,sql server數(shù)據(jù)庫驅(qū)動類的完全限定類名,演示:在工程中引入JDBC驅(qū)動程序包,數(shù)據(jù)庫名稱,------語法------2005版本 String URL=jdbc:sqlserver://localhost:1433; DatabaseName=news; Class.forName(com.micro

3、soft. sqlserver. jdbc.SQLServerDriver); Connection con = DriverManager.getConnection(URL,sa,sa);,sql server數(shù)據(jù)庫驅(qū)動類的完全限定類名,演示:在工程中引入JDBC驅(qū)動程序包,數(shù)據(jù)庫名稱,1. SQL Server 2000數(shù)據(jù)庫連接字符串 Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();Connectionconn=java.sql.DriverManager.getConnection(j

4、dbc:microsoft:sqlserver://數(shù)據(jù)庫服務(wù)器名或地址:1433;DatabaseName=數(shù)據(jù)庫名,用戶名,密碼); 所需jar包:msbase.jar、mssqlserver.jar、msutil.jar 2. SQL Server 2005 數(shù)據(jù)庫連接字符串: Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();Connectionconn=java.sql.DriverManager.getConnection(jdbc:sqlserver://數(shù)據(jù)庫服務(wù)器名或地址:143

5、3;DatabaseName=數(shù)據(jù)庫名,用戶名,密碼);,11.1.2 數(shù)據(jù)庫URL 要連接一個數(shù)據(jù)庫,必須要指定源數(shù)據(jù)庫,有時也需要指定相應(yīng)的參數(shù)。例如:網(wǎng)絡(luò)協(xié)議驅(qū)動程序需要指定端口、ODBC驅(qū)動程序等。 JDBC用類似于常見的Net URL句法描述數(shù)據(jù)庫。例如:我們通過JDBCODBC橋連接一個Access數(shù)據(jù)庫myAccess: jdbc:odbc:myAccess String driverName=sun.jdbc.odbc.JdbcOdbcDriver; String URL=jdbc:odbc:db1; JDBC常規(guī)的URL句法是: jdbc:subprotocol name

6、:datasource 連接到Oracle數(shù)據(jù)庫及SQL Server的URL分別如下: Oracle數(shù)據(jù)庫 jdbc:oracle:thin:127.0.0.1:1521:wangwd,數(shù)據(jù)庫名稱,因為連接Oracle數(shù)據(jù)庫一般是通過客戶端去進行的, Oracle客戶端也被稱為瘦型機(thin),對于127.0.0.1這是本地IP地址,也就是說Oracle數(shù)據(jù)庫是安裝在本機上的,當然在這里用戶也可以采用如下的格式: jdbc:oracle:thin:localhost:1521:wangwd 1521是Oracle訪問端口號,wangwd是建立的Oracle數(shù)據(jù)庫的名字,用戶可以換成自己喜歡

7、的名字。 SQL Server 2000數(shù)據(jù)庫URL jdbc:microsoft:sqlserver://localhost:1433 在這里采用默認的數(shù)據(jù)庫,如果用戶自己創(chuàng)立的數(shù)據(jù)庫如myBook,可以采用如下的格式: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myBook,SQL Server 2005數(shù)據(jù)庫URL jdbc:sqlserver://localhost:1433 在這里采用默認的數(shù)據(jù)庫,如果用戶自己創(chuàng)立的數(shù)據(jù)庫如myBook,可以采用如下的格式: jdbc:sqlserver://localhost:14

8、33;DatabaseName=myBook 驅(qū)動程序全稱: com.microsoft.sqlserver.jdbc.SQLServerDriver,11.1.3 建立連接 驅(qū)動程序管理器(DriverManager)類是負責選擇數(shù)據(jù)庫驅(qū)動程序和建立到數(shù)據(jù)庫的連接的類,但驅(qū)動程序管理器只能激活已登錄的驅(qū)動程序。 登錄驅(qū)動程序的方法如下: 裝入一個驅(qū)動程序類以自己登錄驅(qū)動程序。例如可以用以下方式登錄Oracle驅(qū)動程序: Class.forName(oracle.jdbc.driver.OracleDriver); 用戶也可以用下面的方式登錄一個SQL Server的驅(qū)動程序: Class.

9、forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); 登錄我們剛剛建立的ODBC數(shù)據(jù)源的方法如下: Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);,現(xiàn)在我們假設(shè)安裝了Oracle數(shù)據(jù)庫,數(shù)據(jù)庫名字為wangwd,則得到一個數(shù)據(jù)庫的連接如下: Class.forName(oracle.jdbc.driver.OracleDriver);//登錄Oracle數(shù)據(jù)庫驅(qū)動程序 String url = jdbc:oracle:thin:localhost:1521:wangwd;//數(shù)據(jù)庫URL Stri

10、ng userName =scott;//登錄數(shù)據(jù)庫用戶名 String password = tiger;//用戶密碼 Connection con = DriverManager.getConnection(url, userName, password); 接著我們再以筆者安裝的SQL Server為例,并新建一個數(shù)據(jù)庫為studentmanager: Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); String url =jdbc:microsoft:sqlserver://localhost:1433; Dat

11、abaseName=studentmanager; String userName = sa; String password = ; Connection con = DriverManager.getConnection(url, userName, password);,11.1.4 建立會話 數(shù)據(jù)庫建立連接后,要想操縱數(shù)據(jù)庫,必須跟數(shù)據(jù)庫建立一個會話。所謂會話就是從建立一個數(shù)據(jù)庫連接到關(guān)閉數(shù)據(jù)庫連接所進行的所有動作的總稱,這與數(shù)據(jù)庫會話是不同的??梢酝ㄟ^如下的代碼得到一個會話: tryStatement st = con.createStatement(); catch(SQLExce

12、ption e) 通過這段代碼我們可以知道,創(chuàng)建一個會話是建立在數(shù)據(jù)庫連接的基礎(chǔ)上的?,F(xiàn)在我們得到了一個默認的會話。接下來就可以進行數(shù)據(jù)庫的具體操作了。,11.1.5 操作數(shù)據(jù)庫 如果我們把數(shù)據(jù)庫(database)看作是一個倉庫,那到數(shù)據(jù)庫的連接(Connection)就可以假想成一條通往倉庫的陽光大道,那么會話(Statement)就可以看作是跑在這條大道上的一輛貨車,我們對數(shù)據(jù)庫進行的不同的操作(SQL語句),就是對這輛貨車發(fā)出不同的指令(update、delete、query等),執(zhí)行的結(jié)果就是從數(shù)據(jù)庫中返回操作結(jié)果,這個結(jié)果就類似于從倉庫拉回不同的貨物。 1. 查詢 查詢操作是數(shù)據(jù)庫

13、中最基本的語句,通過如下的語句可以對數(shù)據(jù)庫執(zhí)行一個查詢,查詢的結(jié)果是以結(jié)果集(ResultSet)的形式返回的。 String sql = select * from student; ResultSet result = st.executeQuery(sql);,ResultSet類的若干方法,例11-1程序清單 QueryODBCTest.java /** * 通過這個程序,向讀者展示比較完整的JDBC數(shù)據(jù)庫操作的順序,在這個例子中主要展示的查詢 * 及格式輸出。 */ import java.sql.SQLException; import java.sql.Connection; i

14、mport java.sql.Statement; import java.sql.ResultSet; import java.sql.DriverManager; import java.sql.Date; public class QueryODBCTest private Connection con; public static void main(String args) QueryODBCTest test = new QueryODBCTest(); Connection con = test.getConnection(); String sql = select *

15、from student; test.getStudent(con, sql); ,public void getStudent(Connection con, String sql) try Statement st = con.createStatement(); ResultSet rs = st.executeQuery(sql); while(rs.next()) String name =rs.getString(姓名); String number = rs.getString(學(xué)號); Date date = rs.getDate(出生日期); String spe = r

16、s.getString(專業(yè)); String address = rs.getString(籍貫); System.out.println( n姓名: + name + t學(xué)號: + number + t出生日期: + date + t專業(yè): + spe + t籍貫: + address ); ,st.close(); con.close(); catch(SQLException e) e.printStackTrace(); public Connection getConnection() String url = jdbc:odbc:myAccess;//數(shù)據(jù)庫URL String

17、 userName = ;//登錄數(shù)據(jù)庫用戶名 String password = ;//用戶密碼 try //登錄JDBC-ODBC驅(qū)動程序 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); con = DriverManager.getConnection(url, userName, password); catch(SQLException e), e.printStackTrace(); catch(ClassNotFoundException ex) ex.printStackTrace(); return con; ,2. 建表 下面我

18、們將在SQL Server中利用數(shù)據(jù)庫的相關(guān)操作建立一個student表,并插入相關(guān)的記錄。 在創(chuàng)建一個表格時,我們是通過: st.execute(sql); 來實現(xiàn)的。execute方法的返回值是一個boolean型的,如果執(zhí)行成功就返回true,反之則返回false。 在執(zhí)行插入記錄的操作時,我們是通過: st.executeUpdate(sql); 來實現(xiàn)的。它的返回值是一個int型的數(shù)值,它表示當前操作完成的記錄數(shù)。,3. 創(chuàng)建數(shù)據(jù)庫 在前面的示例中,我們都是通過直接將SQL語句嵌入到程序本身中,這種編碼方式我們習(xí)慣上稱之為硬編碼。硬編碼看起來比較容易編寫,但存在一個很大的缺點,那就是

19、兼容性不強,這里的兼容性指的是程序的兼容性。試想,假如我們按照以下的形式創(chuàng)建了一張表: String sql = CREATE TABLE SUTDENT(姓名 varchar(12) NOT NULL, +學(xué)號 varchar(10) NOT NULL, + 出生日期 datetime NOT NULL,專業(yè) varchar(10) NULL, +籍貫 varchar(30) NULL); 如果由于某種原因需要將籍貫的字段長度更改為50位字符長,那只有重新修改程序代碼,并重新編譯,重新發(fā)布,這樣做無疑是非常麻煩的?,F(xiàn)在我們可以將類似的SQL語句也通過配置文件配置,并且當需要修改數(shù)據(jù)庫結(jié)構(gòu)時,

20、我們只需要簡單地修改一下屬性文件就可以了。,11.2 預(yù)查詢,接下來,我們再介紹JDBC在進行查詢數(shù)據(jù)庫操作方面的一個新的特性:預(yù)查詢(prepared statement)。根據(jù)字面的意思,我們知道預(yù)查詢也就是在執(zhí)行真正的查詢工作之前先做一部分準備工作,以適應(yīng)真正的查詢,這樣做的目的是為了減少數(shù)據(jù)庫操作的時間。 現(xiàn)在假設(shè)我們想從建立的數(shù)據(jù)庫中查詢符合條件的一條記錄: select 姓名,學(xué)號,專業(yè),籍貫 from student where 姓名 = 需要用戶輸入的信息 在這個SQL語句中,只有需要用戶輸入的信息是可變的,其他信息基本上不變,所以我們可以考慮把前面的信息先輸入到數(shù)據(jù)庫中,只要

21、用戶輸入想查詢的人名就可以了,這種情況就像是數(shù)據(jù)庫在等待填空一樣。 在JDBC中預(yù)查詢是用“?”來替代未知條件,那么上面的SQL語句就可以實現(xiàn)為: select 姓名,學(xué)號,專業(yè),籍貫 from student where 姓名 = ?,11.3 小結(jié),通過這一章的講述,使讀者能使我們的應(yīng)用程序與數(shù)據(jù)庫有機的結(jié)合起來,在這一章中,筆者通過示例示范了連接不同數(shù)據(jù)庫的方法,并分別講述了數(shù)據(jù)庫的相關(guān)操作,希望讀者在實際應(yīng)用中仔細體會。盡管現(xiàn)在JDBC對于某些功能的支持不是太好,但隨著JDBC2的應(yīng)用與發(fā)展,會有很大的轉(zhuǎn)變,在JDBC2中也會有更新的功能與改變體現(xiàn)出來,讀者可以查看Sun公司關(guān)于JDBC2設(shè)計規(guī)范。,

展開閱讀全文
溫馨提示:
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)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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