Oracle 需要的配置和 MySQL 差不多,只不過也存在一些常見問題。
針對過去版本的 Oracle 的驅動可能以 .zip 格式(而不是 .jar 格式)進行分發的。Tomcat 只使用 *.jar 文件,而且它們還必須安裝在 $CATALINA_HOME/lib 中。因此,classes111.zip 或 classes12.zip 這樣的文件后綴應該改成 .jar。因為 jar 文件本來就是一種 zip 文件,因此不需要將原 zip 文件解壓縮然后創建相應的 jar 文件,只需改換后綴名即可。
對于 Oracle 9i 之后的版本,應該使用 oracle.jdbc.OracleDriver 而不是 oracle.jdbc.driver.OracleDriver,因為 Oracle 規定開始棄用 oracle.jdbc.driver.OracleDriver,下一個重大版本將不再支持這一驅動類。
跟前文 MySql 的配置一樣,你也需要在 Context 中定義數據源。下面定義一個叫做 myoracle 的數據源,使用上文說的短驅動來連接(用戶名為 scott,密碼為 tiger)到名為 mysid 的SID(Oracle 系統ID,標識一個數據庫的唯一標示符)。 用戶 scott 使用的 Schema 就是默認的 schema。
使用 OCI 驅動,只需在 URL 字符串中將 thin 變為 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 配置
在創建 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>
可以使用上文所列的范例應用(假如你創建了所需的 DB 實例和表,等等),將數據源代碼用下面的代碼替換:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();//etc.