Java JDBC 接続

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