Info

もうちょっとでTomcatとOracleを使ったプロジェクトが始まるので、今日下準備として、サンプルコード書いてみようと思った。まずはTomcat5.5、Oracle10g R2をインストール。そしてEclipseとTomcatPlugin。一通りインストール終わったらOracle接続のサンプルを書いてみたが初めのごろはどうもうまくいかなかった。以下が自分がぶつかった問題。

1.データベース環境
バージョン:Oracle10g R2
データベース名:ora10g
スキーマ名:scott
パスワード:tiger

2.Tomcat環境
バージョン:Tomcat5.5
プロジェクト名:sample

server.xml
<Resource name=”jdbc/myoracle” auth=”Container” type=”javax.sql.DataSource”/>
<ResourceParams name=”jdbc/myoracle”>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>username</name>
<value>scott</value>
</parameter>
<parameter>
<name>password</name>
<value>tiger</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@localhost:1521:ora10g</value>
</parameter>
</ResourceParams>

実行してみると以下のようなエラーが出た。

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class ” for connect URL ‘null’
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)

以下のように修正したらうまくいった。

<Resource name=”jdbc/myoracle” auth=”Container”
type=”javax.sql.DataSource”
driverClassName=”oracle.jdbc.driver.OracleDriver”
url=”jdbc:oracle:thin:@localhost:1521:ora10g”
username=”scott”
password=”tiger”
maxActive=”1″
maxIdle=”1″
maxWait=”3000″
defaultAutoCommit=”false”
removeAbandoned=”true”
logAbandoned=”true” />

ちなみに、Javaのソースコードは以下のようにする。

DataSource ds = (DataSource) ic.lookup(“java:comp/env/jdbc/myoracle”);
Connection con = ds.getConnection();
// Statementを取得
Statement stmt = con.createStatement();
// 検索するSQL文を作成
String sql = “SELECT * FROM emp”;
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
rs.getInt(“EMPNO”) ;
}

Comments

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Basic HTML is allowed. Your email address will not be published.

Subscribe to this comment feed via RSS