Oracle 需要的配置和 MySQL 差不多,只不過也存在一些常見問題。
針對過去版本的 Oracle 的驅動可能以 .zip 格式(而不是 .jar 格式)進行分發(fā)的。Tomcat 只使用 *.jar 文件,而且它們還必須安裝在 $CATALINA_HOME/lib 中。因此,classes111.zip 或 classes12.zip 這樣的文件后綴應該改成 .jar。因為 jar 文件本來就是一種 zip 文件,因此不需要將原 zip 文件解壓縮然后創(chuàng)建相應的 jar 文件,只需改換后綴名即可。
對于 Oracle 9i 之后的版本,應該使用 oracle.jdbc.OracleDriver 而不是 oracle.jdbc.driver.OracleDriver,因為 Oracle 規(guī)定開始棄用 oracle.jdbc.driver.OracleDriver,下一個重大版本將不再支持這一驅動類。
跟前文 MySql 的配置一樣,你也需要在 Context 中定義數(shù)據(jù)源。下面定義一個叫做 myoracle 的數(shù)據(jù)源,使用上文說的短驅動來連接(用戶名為 scott,密碼為 tiger)到名為 mysid 的SID(Oracle 系統(tǒng)ID,標識一個數(shù)據(jù)庫的唯一標示符)。 用戶 scott 使用的 Schema 就是默認的 schema。
使用 OCI 驅動,只需在 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 應用的 web.xml 文件時,一定要遵從 Web 應用部署描述符文件中 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>
可以使用上文所列的范例應用(假如你創(chuàng)建了所需的 DB 實例和表,等等),將數(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.