黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

JDBC 連接數(shù)據(jù)庫(kù)步驟

jdbc 連接數(shù)據(jù)庫(kù)步驟

建立一個(gè) jdbc 數(shù)據(jù)庫(kù)連接共有四個(gè)步驟:

  • 導(dǎo)入 jdbc 包: 添加 import 語(yǔ)句到 java 程序?qū)胨璧念愒?java 代碼中。
  • 注冊(cè) jdbc 驅(qū)動(dòng)程序:這一步會(huì)導(dǎo)致 jvm 加載所需的驅(qū)動(dòng)程序?qū)崿F(xiàn)到內(nèi)存中,因此它可以實(shí)現(xiàn) jdbc 請(qǐng)求。
  • 制定數(shù)據(jù)庫(kù) url:這是創(chuàng)建格式正確的地址指向到要連接的數(shù)據(jù)庫(kù)。
  • 創(chuàng)建連接對(duì)象:最后,代碼調(diào)用 drivermanager 對(duì)象的 getconnection() 方法來(lái)建立實(shí)際的數(shù)據(jù)庫(kù)連接。

 

1. 導(dǎo)入 jdbc 包

import 語(yǔ)句告訴java編譯器在哪里可以找到在代碼中引用,并放置在您的源代碼最開始的類。

使用標(biāo)準(zhǔn)的jdbc包,它允許選擇,插入,更新和sql表中刪除數(shù)據(jù),添加以下進(jìn)口到您的源代碼:

import java.sql.* ;  // for standard jdbc programs
import java.math.* ; // for bigdecimal and biginteger support

 

2. 注冊(cè) jdbc 驅(qū)動(dòng)程序

使用 jdbc 創(chuàng)建連接之前,必須在程序中注冊(cè)驅(qū)動(dòng)程序。注冊(cè)過(guò)程只能一次,可以通過(guò)以下兩種方式之一注冊(cè)一個(gè)驅(qū)動(dòng)程序。

1)class.forname():

注冊(cè)一個(gè)驅(qū)動(dòng)程序中最常用的方法是使用 java 的 class.forname() 方法來(lái)動(dòng)態(tài)加載驅(qū)動(dòng)程序的類文件到內(nèi)存中,它會(huì)自動(dòng)將其注冊(cè)。這種方法是可取的,因?yàn)樗试S使驅(qū)動(dòng)注冊(cè)配置,便于攜帶。

下面的示例使用 class.forname() 來(lái)注冊(cè) oracle 驅(qū)動(dòng)程序:

try {
   class.forname("oracle.jdbc.driver.oracledriver");
}
catch(classnotfoundexception ex) {
   system.out.println("error: unable to load driver class!");
   system.exit(1);
}

可以使用 getinstance() 方法來(lái)解決不兼容的jvm,但要編寫了兩個(gè)額外的例外情況如下:

try {
   class.forname("oracle.jdbc.driver.oracledriver").newinstance();
}
catch(classnotfoundexception ex) {
   system.out.println("error: unable to load driver class!");
   system.exit(1);
catch(illegalaccessexception ex) {
   system.out.println("error: access problem while loading!");
   system.exit(2);
catch(instantiationexception ex) {
   system.out.println("error: unable to instantiate driver!");
   system.exit(3);
}

2)drivermanager.registerdriver():

第二種注冊(cè)驅(qū)動(dòng)程序的方法是使用 static drivermanager.registerdriver() 方法。

下面的示例使用 registerdriver() 來(lái)注冊(cè)oracle驅(qū)動(dòng)程序:

try {
   driver mydriver = new oracle.jdbc.driver.oracledriver();
   drivermanager.registerdriver( mydriver );
}
catch(classnotfoundexception ex) {
   system.out.println("error: unable to load driver class!");
   system.exit(1);
}

 

3. 制定數(shù)據(jù)庫(kù) url

當(dāng)加載驅(qū)動(dòng)程序完成后,可以使用 drivermanager.getconnection() 方法獲得連接。為方便參考,我們列出了三個(gè)重載 drivermanager.getconnection() 方法:

  • getconnection(string url)

  • getconnection(string url, properties prop)

  • getconnection(string url, string user, string password)

在這里,每個(gè)方法都需要一個(gè)數(shù)據(jù)庫(kù) url,它指向數(shù)據(jù)庫(kù)地址。

下表列出了常用 jdbc 驅(qū)動(dòng)程序名和數(shù)據(jù)庫(kù)的 url。

rdbms jdbc驅(qū)動(dòng)程序的名稱 url 格式
mysql com.mysql.jdbc.driver jdbc:mysql://hostname:port/databasename
oracle oracle.jdbc.driver.oracledriver jdbc:oracle:thin:@hostname:port:databasename
db2 com.ibm.db2.jdbc.net.db2driver jdbc:db2:hostname:port/databasename
sybase com.sybase.jdbc.sybdriver jdbc:sybase:tds:hostname:port/databasename

 

3. 創(chuàng)建連接對(duì)象

1)使用數(shù)據(jù)庫(kù)url的用戶名和密碼:

getconnection() 最常用的形式是 getconnection(string url, string user, string password),要求傳遞數(shù)據(jù)庫(kù) url,用戶名 username和密碼 password。

假設(shè)有一臺(tái)主機(jī)tcp/ip地址 192.0.0.1 以及主機(jī)名和 oracle 監(jiān)聽器被配置為在端口 1521,數(shù)據(jù)庫(kù)名稱是 emp,然后完整的數(shù)據(jù)庫(kù) url 是:

jdbc:oracle:thin:@192.0.0.1:1521:emp

通過(guò) url、username 和 password 三個(gè)參數(shù)來(lái)獲得一個(gè) connection 對(duì)象:

string url = "jdbc:oracle:thin:@192.0.0.1:1521:emp";
string user = "username";
string pass = "password"
connection conn = drivermanager.getconnection(url, user, pass);

2)只使用一個(gè)數(shù)據(jù)庫(kù) url 的調(diào)用方式

drivermanager.getconnection(string url);

通過(guò)一個(gè)參數(shù)來(lái)獲得一個(gè) connection 對(duì)象,在這種情況下,數(shù)據(jù)庫(kù)的 url 中包含用戶名和密碼:

jdbc:oracle:driver:username/password@database

所以上面的連接可以創(chuàng)建如下:

string url = "jdbc:oracle:thin:username/password@192.0.0.1:1521:emp";
connection conn = drivermanager.getconnection(url);

3)使用數(shù)據(jù)庫(kù) url 和 properties 對(duì)象的調(diào)用方式

drivermanager.getconnection(string url, properties info);

properties 對(duì)象用來(lái)保存一組鍵值對(duì),調(diào)用 getconnection() 方法時(shí),將鍵值對(duì)傳遞給驅(qū)動(dòng)程序。

import java.util.*;
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);

 

4. 關(guān)閉 jdbc 連接

在jdbc程序的結(jié)束,需要關(guān)閉所有的數(shù)據(jù)庫(kù)連接,以結(jié)束數(shù)據(jù)庫(kù)會(huì)話。但是,如果不關(guān)閉的話,java 垃圾收集器會(huì)關(guān)閉連接,并清除舊對(duì)象。但依托垃圾收集,特別是在數(shù)據(jù)庫(kù)編程,是非常差的編程習(xí)慣,應(yīng)該顯式地關(guān)閉數(shù)據(jù)庫(kù)連接。為了確保連接被關(guān)閉,可以在代碼中的 finally 塊執(zhí)行。

要關(guān)閉上面打開的連接,應(yīng)該調(diào)用close()方法,如下所示:

conn.close();

顯式地關(guān)閉連接,可以節(jié)約系統(tǒng)資源。

相關(guān)文章