Oracle 需要的配置和 MySQL 差不多,只不過也存在一些常見問題。
針對(duì)過去版本的 Oracle 的驅(qū)動(dòng)可能以 .zip 格式(而不是 .jar 格式)進(jìn)行分發(fā)的。Tomcat 只使用 *.jar 文件,而且它們還必須安裝在 $CATALINA_HOME/lib 中。因此,classes111.zip 或 classes12.zip 這樣的文件后綴應(yīng)該改成 .jar。因?yàn)?jar 文件本來就是一種 zip 文件,因此不需要將原 zip 文件解壓縮然后創(chuàng)建相應(yīng)的 jar 文件,只需改換后綴名即可。
對(duì)于 Oracle 9i 之后的版本,應(yīng)該使用 oracle.jdbc.OracleDriver 而不是 oracle.jdbc.driver.OracleDriver,因?yàn)?Oracle 規(guī)定開始棄用 oracle.jdbc.driver.OracleDriver,下一個(gè)重大版本將不再支持這一驅(qū)動(dòng)類。
跟前文 MySql 的配置一樣,你也需要在 Context 中定義數(shù)據(jù)源。下面定義一個(gè)叫做 myoracle 的數(shù)據(jù)源,使用上文說的短驅(qū)動(dòng)來連接(用戶名為 scott,密碼為 tiger)到名為 mysid 的SID(Oracle 系統(tǒng)ID,標(biāo)識(shí)一個(gè)數(shù)據(jù)庫的唯一標(biāo)示符)。 用戶 scott 使用的 Schema 就是默認(rèn)的 schema。
使用 OCI 驅(qū)動(dòng),只需在 URL 字符串中將 thin 變?yōu)?oci 即可。
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
username="scott" password="tiger" maxTotal="20" maxIdle="10"
maxWaitMillis="-1"/>
web.xml 配置
在創(chuàng)建 Web 應(yīng)用的 web.xml 文件時(shí),一定要遵從 Web 應(yīng)用部署描述符文件中 DTD 所需要的元素順序。
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth></resource-ref>
可以使用上文所列的范例應(yīng)用(假如你創(chuàng)建了所需的 DB 實(shí)例和表,等等),將數(shù)據(jù)源代碼用下面的代碼替換:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();//etc.