ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Oracle Database XE(フリーのバージョン)でJDBC

2010-02-23 09:34:41 | そのほか

 Oracleのフリーのバージョン、Oracle Database 10g Express Edition(Oracle Database XE)を、JDBC接続します。
 ここJavaでHello World > JDBC(MySQL)編 と同じ内容を行い、比較できるようにしたいと思います。




■Oracle Database XEのインストール

まず、

Oracle Database 10g Express Edition
http://www.oracle.com/technology/products/database/xe/index.html


に行きます。右側の「Free Download」をクリックして、ダウンロードします。
途中、ログインするように聞いてきます。これは、OTNとは違うみたい・・・
登録して、ダウンロードしました。
ダウンロードするのは、Univなんとかのほう。Westan何とかのほうではなく。

その後、ダウンロードしてきたファイル

  OracleXEUniv.exe

をダブルクリックして実行する。
途中、パスワードを聞いてくる。このパスワードは後で必要なので、忘れないこと。
(以下、このパスワードに password と入れたものとして話を進める)

また、8080のポートを使おうとし、もし、つかっていると、他のポート(8081とか)になる。
なので、Tomcatを立ち上げていると競合するので・・・
わざと立ち上げておいて、他のポートを選ばせるか、立ち上げないで8080を使わせるかは、
適当に考えてくれ。
(以下、8080ポートが選ばれたものとします。)

で、正常に終わると、インストール終了となる。




■ブラウザからSQL入力画面を出す

 インストール終了直後ならそのまま、
 そうでないなら、

   スタートメニュー→Oracle 10g Express Editoon→データベースの起動

 で、Oracleを起動してから、

 ブラウザで

    http://127.0.0.1:8080/apex/

 (8080のポート番号は、インストール時に違う番号にしていたら、その番号にする)
 を開きます。

 データベースユーザー名とパスワードを入れられるので

    ユーザー名  SYSTEM
    パスワード インストールのとき設定したパスワード(password)

 を入れます。すると、

 「管理」、「オブジェクト・ブラウザ」、「SQL」、「ユーティリティ」と出るので、

    「SQL」をクリック。

 つぎに、「SQLコマンド」、「SQLスクリプト」、「クエリービルダー」とでるので、

    「SQLコマンド」をクリック。

 上に、SQLが入れられる画面が出ます。




■SQLの入力

 上記の画面から、

JavaでHello World > JDBC(MySQL)編  
http://www.hellohiro.com/jdbcmysql.htm


に書いてあるSQLを入力します。

まず、テーブルを作成するため、そこに書いてあるのと同じCREATE TABLEを入れます

CREATE TABLE HELLO_WORLD_TABLE (
  NO INTEGER NOT NULL,
  LANGUAGE VARCHAR(50),
  MESSAGE VARCHAR(100),
  PRIMARY KEY(NO)
); 


つぎに、データ入力ですが、1行にして、1行づつ入れていきます。
INSERT INTO HELLO_WORLD_TABLE VALUES ( 1 , '日本語' , 'こんにちわ 世界');


そしたら、

INSERT INTO HELLO_WORLD_TABLE VALUES ( 2 , '英語' , 'Hello World');


入力したら、SELECTしてくれると、入っている状況が見れます。




■JDBCのリンク

 Eclipseの場合、プロジェクトを作って、JDBCのパスを通します。

 JDBCのパスを通すには、そのプロジェクトを右クリック、
 propertiesを選択すると出てくるJava Build Pathから、Librariesタブをクリックして
 Add External JARSボタンをクリックすると指定できます。

 OracleのJDBCですが、インストールすると、ふつう、ドライブ直下(たとえばC:)に、
   C:¥oraclexe
 っていうのができています。そのずーっとした、

   C:¥oraclexe¥app¥oracle¥product¥10.2.0¥server¥jdbc¥lib

 (¥は全角で書いてるけど、本当は半角)

 フォルダに、ojdbc14.jarとojdbc14_g.jarの2つがあるので、どちらか好きなほうを選択してください。
 (実行するにはどちらでもいいです。デバッグ情報がちょっと違います)
 なお、これを選ぶということは、Javaのバージョンは、1.4以上ってことになります。

-----

 Eclipseでないひとは、javacコマンド、Javaコマンドでクラスパスを通すときに、上記のojdbc14.jar
をリンクしてください。




■検索した結果を表示するコードの作成

 Javaのプログラムは、こんなかんじ。
import java.sql.*;
import oracle.jdbc.pool.OracleDataSource;

public class test {

	public static void main(String[] args) {
		    try {
		      // ドライバクラスをロード
		    	OracleDataSource ods = new OracleDataSource();
		        ods.setUser("system");                 // ユーザー名をセットする
		        ods.setPassword("password");           // パスワードをセットする
		        ods.setURL("jdbc:oracle:oci:@");       //デフォルトのところに入れたので
		    	

		      // データベースへ接続
		        Connection con = ods.getConnection();

		      // ステートメントオブジェクトを生成
		      Statement stmt = con.createStatement();
		      String sql = "SELECT * FROM HELLO_WORLD_TABLE";
		      // クエリーを実行して結果セットを取得
		      ResultSet rs = stmt.executeQuery(sql);
		      // 検索された行数分ループ
		      while(rs.next()){
		        // NOを取得
		        int no = rs.getInt("NO");
		        // 言語を取得
		        String lang = rs.getString("LANGUAGE");
		        // メッセージを取得
		        String msg = rs.getString("MESSAGE");
		        // 表示
		        System.out.println(no + " " + lang + " " + msg);
		      }
		      // データベースから切断
		      stmt.close();
		      con.close();
		    } catch (Exception e) {
		      e.printStackTrace();
		    }
		  }

}


 さっきの「JavaでHello World」と比較すると、はじめのcon生成までが違っているけど、
 他は同じ。

 こんなかんじ・・・


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« IFRS対応連結テンプレートを... | トップ | アジャイルとウォーターフォ... »
最新の画像もっと見る

そのほか」カテゴリの最新記事