JDBC(Java database connectivity)
JDBC本質(zhì)上來講屬于一種服務(wù)。服務(wù)的特征,按照指定的套路來進(jìn)行操作。
在Java里面專門為JDBC提供有一個(gè)模塊(java.sql),里面的核心開發(fā)包就說java.sql。在JDBC里面核心組成就說DriverManager類以及若干接口(Connection、Statement、PreparedStatement、ResutSet)。
對(duì)于JDBC的程序方位也分為如下四種形式:
JDBC-ODBC橋連接:利用微軟的ODBC技術(shù)進(jìn)行數(shù)據(jù)庫(kù)的連接,而后再利用JDBC技術(shù)訪問ODBC技術(shù)進(jìn)行數(shù)據(jù)庫(kù)的開發(fā),這種技術(shù)為Java默認(rèn)支持的技術(shù),不需要做任何額外的配置即可實(shí)現(xiàn);
|-處理流程:程序→JDBC→ODBC→數(shù)據(jù)庫(kù),操作性能很差,不會(huì)有人用。
JDBC連接:直接利用JDBC進(jìn)行數(shù)據(jù)庫(kù)的連接處理
|-處理流程:程序→JDBC→數(shù)據(jù)庫(kù),這種連接一般只連接本地?cái)?shù)據(jù)庫(kù)服務(wù)器;
JDBC網(wǎng)絡(luò)連接:通過特定的網(wǎng)絡(luò)協(xié)議連接指定的數(shù)據(jù)庫(kù)服務(wù)。我們最常用此類操作。
|-處理流程:程序→JDBC→網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(IP地址、端口);
JDBC協(xié)議連接:自己通過編寫指定的協(xié)議操作實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問;
連接Oracle數(shù)據(jù)庫(kù)
一定要保證已經(jīng)成功的啟動(dòng)了Oracle數(shù)據(jù)庫(kù)的兩個(gè)服務(wù):數(shù)據(jù)監(jiān)聽服務(wù)(Listener)、實(shí)例服務(wù)(SID)。
如果要連接Oracle數(shù)據(jù)庫(kù),需采用如下步驟進(jìn)行處理:
通過反射機(jī)制加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序類:oracle.jdbc.driver.OracleDriver;
數(shù)據(jù)庫(kù)的連接需要有一個(gè)網(wǎng)絡(luò)的連接地址,該地址結(jié)構(gòu)如下:
|-地址結(jié)構(gòu):jdbc:oracle:thin: 主機(jī)名稱:端口號(hào):SID
|-MLDN數(shù)據(jù)庫(kù):jdbc:oracle:thin: localhost:1251:mldn
數(shù)據(jù)庫(kù)用戶名:scott;
數(shù)據(jù)庫(kù)密碼:tieger;
對(duì)于數(shù)據(jù)庫(kù)的連接提供有java.sql.DriverManager的程序類,利用此類中的方法可以獲取一個(gè)Connection的接口對(duì)象
獲取Connection接口對(duì)象:public static Connection getConnection(String url,String user,String password)throws SQLException
【范例】實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接操作
package demo;import java.sql.Connection;import java.sql.DriverManager;import oracle.jdbc.driver.OracleDriver;public class JDBCDemo { private static final String DATAbase_DRIVER = "oracle.jdbc.driver.OracleDriver"; private static final String DATAbase_URL = "jdbc:oracle:thin:@localhost:1521:orcl"; private static final String DATAbase_USER = "system"; private static final String DATAbase_PASSWORD = "asdasd";//此處輸入自己數(shù)據(jù)庫(kù)設(shè)定的密碼 public static void main(String[] args) throws Exception { Connection conn = null;//每一個(gè)COnnection接口對(duì)象秒速的就說一個(gè)用戶連接 Class.forName(DATAbase_DRIVER);//向容器之中加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序 conn = DriverManager.getConnection(DATAbase_URL,DATAbase_USER,DATAbase_PASSWORD); System.out.println(conn); conn.close(); }}oracle.jdbc.driver.T4CConnection@72d818d1
如果此時(shí)在輸出Connection接口對(duì)象的時(shí)候并沒有產(chǎn)生任何的異常,那么說明就表示當(dāng)前的Oracle數(shù)據(jù)庫(kù)已經(jīng)可以正常連接了。
思考:為什么連接Oracle數(shù)據(jù)庫(kù)的時(shí)候一定要單獨(dú)配置Oracle數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序呢?
JDBC是一個(gè)操作的標(biāo)準(zhǔn),標(biāo)準(zhǔn)里面是不牽扯到具體實(shí)現(xiàn)類的,由數(shù)據(jù)庫(kù)廠商來實(shí)現(xiàn)。通過類圖來描述。
整個(gè)JDBC設(shè)計(jì)實(shí)現(xiàn)的就是一個(gè)工廠類的處理機(jī)制。RiverManager是一個(gè)工廠,不同數(shù)據(jù)庫(kù)的生產(chǎn)商使利用JDB提供的標(biāo)準(zhǔn)接口實(shí)現(xiàn)各自的數(shù)據(jù)庫(kù)處理操作。
以上就是天津卓眾教育小編介紹的"學(xué)習(xí)Java數(shù)據(jù)庫(kù)編程的基本操作",希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。
學(xué)習(xí)Java