JDBC 連接

2018-03-20 19:42 更新

JDBC教程 - JDBC連接


注冊JDBC驅(qū)動程序

為了連接到數(shù)據(jù)庫系統(tǒng),我們需要在程序中注冊數(shù)據(jù)庫系統(tǒng)的驅(qū)動程序。

驅(qū)動程序名稱與數(shù)據(jù)庫系統(tǒng)相關。

例子

注冊驅(qū)動程序的最常見方法是使用Java的Class.forName()方法將驅(qū)動程序的類文件加載到內(nèi)存中,并自動注冊它。

try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
}

數(shù)據(jù)庫URL

加載驅(qū)動程序后,我們可以使用DriverManager.getConnection()方法打開一個連接。

有三個重載的DriverManager.getConnection()方法:

  • getConnection(String url)

  • getConnection(String url,Properties prop)

  • getConnection(String url,String user,String password)

數(shù)據(jù)庫URL是指向數(shù)據(jù)庫的地址。

下表列出了一些常見的JDBC驅(qū)動程序名稱和數(shù)據(jù)庫URL。

RDBMS RDBMS... 網(wǎng)址格式
MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname/databaseName
ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@ hostname:port Number:databaseName
DB2 COM.ibm.db2.jdbc.net.DB2Driver jdbc:db2: hostname:port Number / databaseName
Sybase com.sybase.jdbc.SybDriver jdbc:sybase:Tds: hostname:port Number / databaseName

例2

以下代碼顯示如何使用Oracle的thin驅(qū)動程序及其對應的URL。

該代碼假定有Oracle數(shù)據(jù)庫在192.0.0.1 IP地址上運行,端口為1521。

數(shù)據(jù)庫名稱為EMP。

jdbc:oracle:thin:@192.0.0.1:1521:EMP

以下代碼顯示如何將URL值和用戶名和密碼傳遞到getConnection()方法來獲取一個Connection對象。

String URL = "jdbc:oracle:thin:@192.0.0.1:1521:EMP";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);

在數(shù)據(jù)庫URL中嵌入用戶名和密碼

DriverManager.getConnection()方法的第二種形式只需要一個數(shù)據(jù)庫URL:

DriverManager.getConnection(String url);

要使用上面的方法,我們必須將用戶名和密碼嵌入數(shù)據(jù)庫URL。這里是一個一般形式:

jdbc:oracle:driver:username/password@database

我們可以重寫示例如下:

String URL = "jdbc:oracle:thin:username/password@192.0.0.1:1521:EMP";
Connection conn = DriverManager.getConnection(URL);

使用數(shù)據(jù)庫URL和Properties對象

DriverManager.getConnection()方法的第三種形式需要一個數(shù)據(jù)庫URL和一個Properties對象:

DriverManager.getConnection(String url, Properties info);

Properties對象包含一組關鍵字 - 值對。

以下代碼顯示如何使用URL和Properties對象來創(chuàng)建與Oracle數(shù)據(jù)庫的相同連接。

String URL = "jdbc:oracle:thin:@192.0.0.1:1521:EMP";
Properties info = new Properties( );
info.put( "user", "username" );
info.put( "password", "password" );

Connection conn = DriverManager.getConnection(URL, info);

關閉JDBC連接

在退出JDBC應用程序之前,我們需要顯式關閉與數(shù)據(jù)庫的所有連接,以結(jié)束每個數(shù)據(jù)庫會話。

為了確保連接關閉,在finally塊中放置close()方法,因為finally塊始終執(zhí)行,而不管異常是否發(fā)生。

要關閉上面打開的連接,請從Connection對象調(diào)用close()方法如下:

} finally {
  // finally block used to close resources
  try {
    if (stmt != null)
      stmt.close();
  } catch (SQLException se2) {
  }
  try {
    if (conn != null)
      conn.close();
  } catch (SQLException se) {
    se.printStackTrace();
  }
}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號