連接oracle數據庫的各種oracle jdbc驅動程序的細節。
這些細節包括:
1、導入jdbc包
2、注冊oracle jdbc驅動程序
3、打開數據庫連接
4、執行sql dml語句在數據庫表中獲取、添加、修改和刪除行
一、jdbc驅動程序
共有有4種
1、thin驅動程序
thin驅動程序是所有驅動程序中資源消耗最小的,而且完全用java編寫的。
該驅動程序只使用tcp/ip且要求oracle net。被稱為第4類驅動程序。
它使用ttc協議與oracle數據庫進行通信。能夠在applet、application中使用。
2、oci驅動程序
oci驅動比thin需要資源要多,但性能通常好一點。oci驅動適合于部署在
中間層的軟件,如web服務器。不能在applet中使用oci驅動。是第2類驅動程序。
不完全用java寫的,還包含了c代碼。該驅動有許多附加的性能增強特性,
包括高級的連接緩沖功能。
注意:oci驅動要求在客戶計算機上安裝它。
3、服務器內部驅動程序
服務器內部驅動程序提供對數據庫的直接訪問,oracle jvm使用它與數據庫進行通信。
oracle jvm是與數據庫集成的java virtual machine,可以使用oracle jvm將
java類裝載進數據庫,然后公布和運行這個類中包含的方法。
4、服務器thin驅動程序
服務器端thin驅動程序也是由oracle jvm使用的,它提供對遠程數據庫的訪問。
也是完全用java編寫的。
二、導入jdbc包
三、注冊oracle jdbc驅動程序
必須先向java程序注冊oracle jdbc驅動程序,然后才能打開數據庫連接。
有兩種注冊oracle jdbc驅動程序的辦法。
1、使用java.lang.class的forname()方法
例子:class.forname(oracle.jdbc.oracledriver);
2、使用jdbc drivermanager類的registerdriver()方法。
例子:drivermanager.registerdriver(new oracle.jdbc.oracledriver());
如果使用oracle8i jdbc驅動程序,那么需要導入oracle.jdbc.driver.oracledriver類,
然后注冊這個類的實例。
例子:
import oracle.jdbc.driver.oracledriver;
drivermanager.registerdriver(new oracle.jdbc.oracledriver());
注意:從jdbc2.0開始,只用jdbc驅動程序的更標準辦法是通過數據源。
四、打開數據庫連接
必須先打開數據庫連接,然后才能在java程序中執行sql語句。打開數據庫連接
的主要辦法。
1、drivermanager類的getconnection()方法。
drivermanager.getconnection(url,username,passwrod);
url:程序要連接的數據庫,以及要使用的jdbc驅動程序
url的結構依賴于jdbc驅動程序的生產商。對于oracle jdbc驅動程序,數據庫url的結構:
driver_name是程序使用的oracle jdbc驅動程序的名稱。如:
jdbc:oracle:thin oracle jdbc thin驅動程序
jdbc:oracle:oci oracle jdbc oci驅動程序
jdbc:oracle:oci8 oracle jdbc oci驅動程序
driver_information是連接數據庫所需的驅動程序特有的信息。這依賴于使用的驅動程序。
對于oracle jdbc thin驅動程序,可以用
host_name:port:database_sid 或者 oracle net關鍵字-值對
(description=(address=(host=host_name)(protocol=tcp)(port=port()
(connect_data=(sid=database_sid)))
host_name: 運行數據庫的機器的名稱
port: net數據庫監聽器等待這個端口上的請求,默認是1521
database_sid: 要連接的數據庫實例的oracle sid。
username: 程序連接數據庫時使用的數據庫用戶名
passwrod: 用戶名的口令
例子:
connection myconnection=drivermanager.getconnection(
jdbc:oracle:thin:@localhost:1521:orcl,
store_user,
store_password);
connection myconnection=drivermanager.getconnection(
jdbc:oracle:oci:@(description=(address=(host=localhost)
(protocol=tcp)(port=1521))(connect_data=(sid=orcl))),
store_user,
store_password);
2、使用oracle數據源對象,必須先創建這個對象,然后連接它。使用這種方法
采用了一種設置數據庫連接信息的標準化方式,oracle數據源對象可以與
java naming and directory interface(java名字與目錄接口,jndi)一起使用。