■JDBC(servlet)
・jdbcドライバ(oracle9i client)
tomcatで直接実行
%ORACLE_HOME%\jdbc\lib下のojdbc14.jarというのがJDBCドライバになります。
これを tomcatのcommon/lib下にコピー。
特に%CLASSPATH%の設定などしなくても大丈夫でした。
eclipse上で実行
プロジェクトのプロパティーでjavaのビルド・パスにライブラリーの設定
外部jarの追加を選択しojdbc14.jarを指定する。
nls_charset12.jarも追加しておく。
JDBCを使ったDB接続(oracle)ソース
・JDBC接続パラメータ
web.xmlの設定例
<!-- JDBCに関するパラメータ設定 (Oracle) -->
<context-param>
<param-name>jdbcDriver</param-name>
<param-value>oracle.jdbc.driver.OracleDriver</param-value>
<description>JDBC Driver</description>
</context-param>
<context-param>
<param-name>jdbcUri</param-name>
<param-value>jdbc:oracle:thin:@192.168.0.101:1521:TEST</param-value>
<description>ORACLE URI</description>
</context-param>
<context-param>
<param-name>dbUser</param-name>
<param-value>TEAM_A</param-value>
<description>ORACLE DB USER</description>
</context-param>
<context-param>
<param-name>dbPassword</param-name>
<param-value>TEAM_A</param-value>
<description>ORACLE DB PASSWORD</description>
</context-param>
<!-- ここまで -->
■J2SDK1.4.1 でのシフトJIS の扱い変更に伴う問題
・JDBC で Oracle9i の文字データをアクセスすると記号文字「〜」、「−」
関係が ? になる。次のコード回避した。
s = rs.getString(fld);
s = new String(s.getBytes("SJIS"), "MS932");
但し、UNIX-Tomcat + Windows-Oracle の組み合わせでは、getBytes を
使用すると逆におかしくなる。
UNIX-Tomcat + Windows-Oracle、Windows-Tomcat + Windows-Oracle 共通で
処理するには、次のように「〜」だけ特別な変換をするしかないのかも。
s = rs.getString(fld);
s = s.replace('\u301c', '\uff5e');
・charset= も以前の SJIS、Shift_JIS、iso-2022-jp は MS932 に
しないと記号文字関係が ? になる。