Java程序与数据库连接
一個(gè)網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫應(yīng)用系統(tǒng)是一個(gè)三層次結(jié)構(gòu)。客戶機(jī)與服務(wù)器采用網(wǎng)絡(luò)連接,客戶機(jī)端應(yīng)用程序按通信協(xié)議與服務(wù)器端的數(shù)據(jù)庫程序通信;數(shù)據(jù)庫服務(wù)程序通過SQL命令與數(shù)據(jù)庫管理系統(tǒng)通信。
Java程序與數(shù)據(jù)庫連接方法有兩種。一種是使用JDBC-ODBC橋接器與數(shù)據(jù)庫連接,一種是用純Java的JDBC驅(qū)動程序?qū)崿F(xiàn)與數(shù)據(jù)庫連接。
使用JDBC-ODBC 橋接器與數(shù)據(jù)庫連接
Java程序使用JDBC-ODBC 橋接器與數(shù)據(jù)庫連接,Java程序與數(shù)據(jù)庫通信的過程是:
先由數(shù)據(jù)庫應(yīng)用程序向ODBC驅(qū)動管理器發(fā)出API調(diào)用,ODBC驅(qū)動管理器將這個(gè)調(diào)用轉(zhuǎn)換成向數(shù)據(jù)庫管理系統(tǒng)的ODBC驅(qū)動程序調(diào)用,數(shù)據(jù)庫管理系統(tǒng)又將這個(gè)調(diào)用轉(zhuǎn)換成對操作系統(tǒng)的數(shù)據(jù)輸入/輸出調(diào)用。最后,操作系統(tǒng)從數(shù)據(jù)庫中得到實(shí)際數(shù)據(jù)逐級返回。
數(shù)據(jù)庫編程首先要設(shè)置數(shù)據(jù)源,在ODBC中設(shè)置數(shù)據(jù)源的步驟如下:
數(shù)據(jù)源就是數(shù)據(jù)庫,在設(shè)定了數(shù)據(jù)源的基礎(chǔ)上,Java程序要訪問數(shù)據(jù)庫表,還要建立JDBC-ODBC橋接器,讓程序與數(shù)據(jù)庫連接。以后,程序就可向數(shù)據(jù)庫發(fā)送SQL語句,處理數(shù)據(jù)庫返回的結(jié)果。Java數(shù)據(jù)庫連接JDBC(Java DataBase Connectivity)由一組用Java語言編寫的類和接口組成,JDBC是Java程序與數(shù)據(jù)庫連接API。它能做以下三件事情:與某個(gè)數(shù)據(jù)庫建立連接、向數(shù)據(jù)庫發(fā)送SQL語句和處理數(shù)據(jù)庫返回的結(jié)果。
調(diào)用類方法Class.forName(String s)能建立JDBC-ODBC橋接器。例如,代碼:
try{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}catch(Exception e){}
為Java程序加載了驅(qū)動程序。
【例 13-7】說明與數(shù)據(jù)庫連接的方法connectByJdbcOdbc(),該方法按給定的數(shù)據(jù)庫URL、用戶名和密碼連接數(shù)據(jù)庫,如果連接成功,方法返回連接對象,連接不成功,則返回空(查看源文件)。
用純Java的JDBC驅(qū)動程序?qū)崿F(xiàn)與數(shù)據(jù)庫連接
Java程序也可以用純Java的JDBC驅(qū)動程序?qū)崿F(xiàn)與數(shù)據(jù)庫連接。這種方法應(yīng)用較廣泛,但是需要下載相應(yīng)的驅(qū)動程序包,因?yàn)椴煌臄?shù)據(jù)庫的連接代碼可能不同,連接不同的數(shù)據(jù)庫,加載的驅(qū)動程序也可能不同。例如,連接SQLServer的驅(qū)動程序在www.msdn.com網(wǎng)站下載,有3個(gè)包:msbase.jar,mssqlserver.jar和msutil.jar,并要求將這3個(gè)包放在jdkjrelibext目錄下,或在CLASSPATH中設(shè)置其放置位置。
使用純Java的JDBC驅(qū)動程序?qū)崿F(xiàn)與數(shù)據(jù)庫連接的過程如下:
- 一各是將驅(qū)動程序添加到j(luò)ava.lang.System的屬性jdbc.drivers中。這是一個(gè)DriverManager類加載驅(qū)動程序類名的列表,表元用冒號分隔。
- 另一種方式是從相關(guān)的網(wǎng)站下載驅(qū)動程序后,在程序中利用Class.forName()方法加載指定的驅(qū)動程序。例如:
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
jdbc:subProtocol:subName://hostname:port:Databasename=XXX
其中,subprotocol是某種驅(qū)動程序支持的數(shù)據(jù)庫連接機(jī)制; subName是當(dāng)前連接機(jī)制下的具體名稱;hostName是主機(jī)名;port是相應(yīng)的連接端口;DatabaseName是要連接的數(shù)據(jù)庫名稱。例如,以下代碼可以是一個(gè)數(shù)據(jù)庫的URL:
jdbc:Microsoft:sqlserver://localhost:1433;Databasename=ksinfo
該數(shù)據(jù)庫的URL說明利用miscrosoft提供的機(jī)制,用sqlserve驅(qū)動,通過1433端口訪問本機(jī)上的ksInfo數(shù)據(jù)庫。
【例 13-8】說明與數(shù)據(jù)庫連接的靜態(tài)方法connectByJdbc(),該方法按給定的數(shù)據(jù)庫URL、用戶名和密碼連接數(shù)據(jù)庫,如果連接成功,方法返回true,連接不成功,則返回false(查看源文件)。
1.IP地址和InetAddress類
2.套接字(Socket)
3.數(shù)據(jù)庫連接
4.幾個(gè)重要的類和接口
5.數(shù)據(jù)庫查詢
6.數(shù)據(jù)庫更新
7.插入記錄
8.修改記錄
9.刪除記錄
總結(jié)
以上是生活随笔為你收集整理的Java程序与数据库连接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java网络编程之IP地址和InetAd
- 下一篇: Java数据库查询简介