■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 に しないと記号文字関係が ? になる。