国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
數(shù)據(jù)庫(kù)_J2EE應(yīng)用中與Oracle數(shù)據(jù)庫(kù)的連接
J2EE應(yīng)用中與Oracle數(shù)據(jù)庫(kù)的連接
加入時(shí)間 2005-12-17 18:47:29 本站域名 www.code365.com
J2EE應(yīng)用中與Oracle數(shù)據(jù)庫(kù)的連接

在J2EE應(yīng)用程序開(kāi)發(fā)中,應(yīng)用程序與數(shù)據(jù)庫(kù)連接的建立是我們經(jīng)常遇到的問(wèn)題之一。在這里我主要談?wù)勗诒镜貞?yīng)用程序中通過(guò)OCI方式、thin方式和JdbcOdbc橋方式連接Oracle數(shù)據(jù)庫(kù),在iPlanet Application Server 6.5和Sun Java System Application Server 7中對(duì)Oracle數(shù)據(jù)庫(kù)連接池的配置以及應(yīng)用中如何從連接池中獲得連接

一、本地通過(guò)JDBC獲得Oracle數(shù)據(jù)庫(kù)連接

通過(guò)JDBC獲得Oracle數(shù)據(jù)庫(kù)連接,有三種方式:OCI方式、thin方式和JdbcOdbc橋方式。OCI方式依賴(lài)于本地的動(dòng)態(tài)鏈接庫(kù),如果在本地安裝了Oracle數(shù)據(jù)庫(kù)客戶(hù)端可以采用該方式;而thin方式為純java的數(shù)據(jù)庫(kù)連接方式;JdbcOdbc橋方式依賴(lài)于本地ODBC數(shù)據(jù)庫(kù)源的配置,這種方式一般不太被采用。

1、OCI方式

先在本地安裝Oracle客戶(hù)端,安裝完之后,在安裝的路徑中可以找到…/jdbc/lib/classes12.zip文件,我們?cè)诃h(huán)境變量classpath中設(shè)置classes12.zip所在的路徑。

然后通過(guò)以下的數(shù)據(jù)庫(kù)連接類(lèi),在本地通過(guò)OCI方式獲得Oracle數(shù)據(jù)庫(kù)連接

/**
* 在本地獲得數(shù)據(jù)庫(kù)連接
*/

package com.j2ee.db;

import java.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
import javax.naming.*;

/**
* 通過(guò)OCI方式獲得Oracle數(shù)據(jù)庫(kù)連接
*/
public class DbConnection
{
final static String sDBDriver = "oracle.jdbc.driver.OracleDriver";
final static String sConnStr = "jdbc:oracle:oci8:sr/sr@ora199";

/**
*
*/
public DbConnection()
{
}

/**
* 獲得Oracle數(shù)據(jù)庫(kù)連接
*/
public java.sql.Connection connectDbByOci()
{
java.sql.Connection conn=null;
try
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(sConnStr);
}
catch (Exception e)
{
System.out.println("ERROR:"+e.getMessage());
}
return conn;
}
}
在連接字符串 "jdbc:oracle:oci8:sr/sr@ora199" 中,"sr/sr"為Oracle用戶(hù)的用戶(hù)名和口令,"ora199"為數(shù)據(jù)庫(kù)服務(wù)名。

2、thin方式

先到Oracle技術(shù)網(wǎng)(http://otn.oracle.com/global/cn/software/tech/java/sqlj_jdbc/index.html)下載Oracle JDBC Drivers,同樣地將下載后的zip文件的路徑設(shè)置在環(huán)境變量classpath。

然后通過(guò)以下的數(shù)據(jù)庫(kù)連接類(lèi),在本地通過(guò)thin方式獲得Oracle數(shù)據(jù)庫(kù)連接。

/**
* 在本地獲得數(shù)據(jù)庫(kù)連接
*/

package com.j2ee.db;

import java.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
import javax.naming.*;

/**
* 通過(guò)thin方式獲得Oracle數(shù)據(jù)庫(kù)連接
*/
public class DbConnection
{
private String sConnStr = "";

/**
* 缺省構(gòu)造器
*/
public DbConnection()
{
sConnStr = "jdbc:oracle:thin:@10.1.4.199:1521:ora199";
}

/**
* @param ip,serviceName
*/
public DbConnection(String ip,String serviceName)
{
sConnStr = "jdbc:oracle:thin:@"+ip+":1521:"+serviceName;
}

/**
* 通過(guò)thin方式獲得Oracle數(shù)據(jù)庫(kù)的連接.
*/
public java.sql.Connection connectDbByThin()
{
java.sql.Connection conn=null;
try
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(sConnStr,"sr","sr");
}
catch (Exception e)
{
System.out.println("ERROR:"+e.getMessage());
}
return conn;
}

/**
* 通過(guò)thin方式獲得Oracle數(shù)據(jù)庫(kù)的連接.
* @param userId,password
*/
public java.sql.Connection connectByJdbc(String userId,String password)
{
java.sql.Connection conn=null;
try
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(sConnStr,userId,password);
}
catch (Exception e)
{
System.out.println("ERROR:"+e.getMessage());
}
return conn;
}
}
這種方式運(yùn)用起來(lái)比較靈活,簡(jiǎn)單,具有較強(qiáng)的移植性和適用性。只要注意連接字符串"jdbc:oracle:thin:@10.1.4.199:1521:ora199"中具體參數(shù)的設(shè)置即可

3、JdbcOdbc橋方式

先通過(guò)管理工具中的數(shù)據(jù)源來(lái)添加本地對(duì)Oracle數(shù)據(jù)庫(kù)的連接,然后通過(guò)以下的數(shù)據(jù)庫(kù)連接類(lèi),在本地通過(guò)JdbcOdbc橋方式獲得Oracle數(shù)據(jù)庫(kù)連接。

/**
* 在本地獲得數(shù)據(jù)庫(kù)連接
*/

package com.j2ee.db;

import java.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
import javax.naming.*;

/**
* 通過(guò)JdbcOdbc橋方式獲得Oracle數(shù)據(jù)庫(kù)連接
*/
public class DbConnection
{
/**
*
*/
public DbConnection()
{
}

/**
* 獲得Oracle數(shù)據(jù)庫(kù)連接
*/
public java.sql.Connection connectDbByJdbcOdbcBridge()
{
java.sql.Connection conn=null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:ora199","sr","sr");
}
catch (Exception e)
{
System.out.println("ERROR:"+e.getMessage());
}
return conn;
}
}
在getConnection方法中第一個(gè)參數(shù)"jdbc:odbc:ora199" 中的"ora199"為本地ODBC數(shù)據(jù)源的數(shù)據(jù)源名稱(chēng),第二個(gè)參數(shù)和第三個(gè)參數(shù)分別為Oracle的用戶(hù)名和口令。

二、通過(guò)連接池獲得Oracle數(shù)據(jù)庫(kù)連接

這部分主要講述在iPlanet Application Server 6.5和Sun Java System Application Server 7中Oracle數(shù)據(jù)庫(kù)連接池的配置,以及在應(yīng)用中如何通過(guò)連接池獲得數(shù)據(jù)庫(kù)的連接。

1、iPlanet Application Server 6.5連接池的配置

先打開(kāi)iPlanet Application Server 6.5的管理控制臺(tái),選中"database"面板,再選擇"External JDBC Drivers"選項(xiàng)后,點(diǎn)擊"Add…"按鈕,在彈出的對(duì)話(huà)框中,添加一個(gè)名為"ora-type4"的JDBC Driver。


Driver Classpath:該參數(shù)填寫(xiě)classes12.zip文件的物理路徑。

然后在"External JDBC DataSources"中選擇"Add…",在彈出的對(duì)話(huà)框中添加一個(gè)JNDI名稱(chēng)為"credit2"的數(shù)據(jù)源。


DriverType:選擇剛添加好的"ora-type4";

Datasource:ora199,為Oracle數(shù)據(jù)庫(kù)服務(wù)名;

Datasource:ora199,為Oracle數(shù)據(jù)庫(kù)服務(wù)名;

Connection Pool Parameters:圖中顯示的是缺省設(shè)置,可以根據(jù)自己環(huán)境情況來(lái)更改這些設(shè)置。

保存完設(shè)置后,在"DataSource Selection Box"中,選擇剛添加的"credit2"數(shù)據(jù)源,再選擇"Vendor Specific Properties"按鈕。在對(duì)話(huà)中添加一個(gè)URL屬性。


至此,iPlanet Application Server 6.5中的數(shù)據(jù)庫(kù)連接池配置完畢,重起服務(wù)使之生效。

2、Sun Java System Application Server 7連接池的配置

在配置之前將classes12.zip文件置于…/server1/lib目錄下。通過(guò)瀏覽器的4848端口打開(kāi)Sun Java System Application Server 7的管理界面,選擇"server1"->"JDBC"-> "Connection Pools"下的"New…"


添加一個(gè)名稱(chēng)為"MyConnectionPool"的Oracle數(shù)據(jù)庫(kù)連接池。"Next"下一步。


在"General"中填寫(xiě)"Datasource Classname"。


在"Properties"中將不需要的屬性刪除,同時(shí)添加"URL"屬性。

"dataSourceName"中填寫(xiě)Oracle數(shù)據(jù)庫(kù)服務(wù)名。

以下連接池的缺省設(shè)置,可以根據(jù)自己環(huán)境的情況作相應(yīng)的調(diào)整。


選擇"Finish"完成連接池的設(shè)置。

下一步為"MyConnectionPool"連接池創(chuàng)建一個(gè)JNDI,以便應(yīng)用程序能夠通過(guò)該名稱(chēng)獲得連接池中的連接。 "server1"->"JDBC"-> "JDBC Resources"下的"New…"


至此,Sun Java System Application Server7中的數(shù)據(jù)庫(kù)連接池配置完畢,重起服務(wù)使之生效。

3、通過(guò)連接池獲得連接

以上在iPlanet Application Server 6.5和Sun Java System Application Server7中配置的連接池都可以通過(guò)以下的數(shù)據(jù)庫(kù)連接類(lèi),從連接池中獲得Oracle數(shù)據(jù)庫(kù)連接。

/**
* 從連接池中獲得數(shù)據(jù)庫(kù)連接
*/

package com.j2ee.db;

import java.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
import javax.naming.*;

/**
* 通過(guò)連接池方式獲得Oracle數(shù)據(jù)庫(kù)連接
*/
public class DbConnection
{
/**
*
*/
public DbConnection()
{
}

/**
* 獲得Oracle數(shù)據(jù)庫(kù)連接
*/
public java.sql.Connection connectDbByConnectionPool()
{
java.sql.Connection conn=null;
try
{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jdbc/credit2");
conn=ds.getConnection();
}
catch (Exception e)
{
System.out.println("ERROR:"+e.getMessage());
}
return conn;
}
}
4、使用連接池的優(yōu)點(diǎn)使用連接池的優(yōu)點(diǎn)主要體現(xiàn)在兩個(gè)方面:對(duì)數(shù)據(jù)庫(kù)的連接統(tǒng)一進(jìn)行配置、管理、監(jiān)控,以及對(duì)數(shù)據(jù)庫(kù)連接池的參數(shù)進(jìn)行優(yōu)化調(diào)整,<br>同時(shí)對(duì)應(yīng)用中沒(méi)有關(guān)閉或其他原因造成沒(méi)有關(guān)閉的數(shù)據(jù)庫(kù)連接由連接池統(tǒng)一進(jìn)行管理。便于應(yīng)用的移植和后端數(shù)據(jù)庫(kù)的切換,<br>因?yàn)樵趹?yīng)用中通過(guò)統(tǒng)一的JNDI獲得數(shù)據(jù)庫(kù)的連接,而具體連接的是哪一臺(tái)機(jī)器上的數(shù)據(jù)庫(kù)與應(yīng)用無(wú)關(guān)。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
oracle學(xué)習(xí)筆記之java操作oracle
Java連接Oracle數(shù)據(jù)庫(kù)
XX報(bào)名程序優(yōu)化總結(jié)
如何在你的Linux機(jī)器上安 ?行Oracle--??的博客世界
連接orcle數(shù)據(jù)庫(kù)的代碼(java)
使用JDBC連接Oracle數(shù)據(jù)庫(kù)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服