パソコンアルバイトならスリープロ 転職登録で最適なお仕事をご紹介します
OracleでJDBC (thinドライバ)

環境
ディストリビューション Trubo Linux 6.0 WorkStation
Oracle Oracle8i Enterprise Edition Release 8.1.7.0.0
JDK JDK1.2.2


既にoracleがインストールされていれば一部の環境変数を変更するだけです。 oracleのインストールはこちら を参考にして下さい。Oracle8iには標準でJDBCドライバーが付いています。

JDKは既にセットアップされていなければなりません。JDKのインストールはこちら を参考にして下さい。


手順は以下の通りです。
(インストールの詳細は $ORACLE_HOME/jdbc/Readme.txtを参照して下さい。)


CLASSPATHへの追加

CLASSPATHに以下の内容を追加します。

$ORACLE_HOME/jdbc/lib/classes111.zip
$ORACLE_HOME/jdbc/lib/nls_charset11.zip


例)
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$ORACLE_HOME/jdbc/lib/classes111.zip:$ORACLE_HOME/jdbc/lib/nls_charset11.zip:


LD_LIBRARY_PATHへの追加

LD_LIBRARY_PATHに以下の内容を追加します。

$ORACLE_HOME/jdbc/lib

例)
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib:$LD_LIBRARY_PATH


通常上記の内容を ~/.bashrc や ~/.bash_profile に記述しておきます。

上記の内容を有効にしたら以下のサンプルプログラムを実行してみましょう。

以下のソースを TestAccess.java という名前で保存します。
事前に次のsqlでテーブルとテストデータを作成しておきます。
crt_table.sql
crt_demodata.sql
(Netscapeならシフトキーを押しながらクリックして下さい。)

このサンプルでは以下の環境です。
ホスト名:kenken
Net8接続名:kenken.sugi
DB名前:kenken
データベースへのコネクションの行はJDBCのReadmeには以下のように記述されています。
   For the JDBC Thin Driver, or Server-side Thin Driver:

      Connection conn = DriverManager.getConnection(
                          "jdbc:oracle:thin:@",
                          "scott", "tiger");

      where  is either a string of the form
      :: or a SQL*net name-value pair.


TestAccess.java

      import java.sql.*;

      public class TestAccess {
        public static void main(String argv[]) {
          Connection conn = null;
          Statement stmt = null;
          ResultSet rset = null;
          String url = "jdbc:oracle:thin:@kenken.sugi:1521:kenken";

          try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(url,"kenken","kenken");
            stmt = conn.createStatement();
            String sql = "SELECT * FROM address order by name ";
            rset = stmt.executeQuery(sql);
            while (rset.next()) {
              // print the values for the current row.
              String n = rset.getString("name");
              String p = rset.getString("kana");
              String b = rset.getString("tel");
              System.out.println("ROW = " + n + " " + p + " " + b);
            }

          } catch (SQLException e) {
              e.printStackTrace();

          } catch (Exception e) {
              e.printStackTrace();

          } finally {
            try {
              if (rset != null) rset.close();
              if (stmt != null) stmt.close();
              if (conn != null) conn.close();

            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        }
      }
    

コンパイル
javac TestAccess.java
  


実行結果
$ java TestAccess
ROW = 氏名1 シメイ1 01-2345-6789
ROW = 氏名2 シメイ2 01-2345-6789
ROW = 氏名3 シメイ3 01-2345-6789
ROW = 氏名4 シメイ4 01-2345-6789
ROW = 氏名5 シメイ5 01-2345-6789
ROW = 氏名6 シメイ6 01-2345-6789
ROW = 氏名7 シメイ7 01-2345-6789

  





linux

[へなちょこlinuxへ]   [ホームへ]