音楽に関する話題、プログラムに関する話題、ジョギングに関する話題、後は日々気になったことを綴っていきます。
ザ☆ミュージシャンズ・プログラマー - Exploring Music & Programming -



<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

前回はOSとしてWindowsを使用しましたが、やっぱり運用がUnixというだけに、Unixバージョンで行きます。

環境は以下の通りです。

  1. OSはSolaris10(SPARC版)
  2. Javaは1.6.0_20
  3. JavaDB(Apache Derby)は別途10.6.1.0で行きます。
  4. Javaでプログラムを書くこともあるので、Antも使います。バージョンは1.8.1です。

Windowsと同様にJava(JAVA_HOME)、JavaDB(DERBY_HOME)、Ant(ANT_HOME)の環境変数を定義し、各APのbinをPATHに追加します。

> java -version
java version "1.6.0_20
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)

> ant -version
Apache Ant version 1.8.1 compiled on April 30 2010

> sysinfo
------------------ Java 情報 ------------------
Java バージョン: 1.6.0_20
Java ベンダー: Sun Microsystems Inc.
Java ホーム: /usr/jdk/instances/jdk1.6.0/jre
Java クラスパス: /opt/db-derby-10.6.1.0-bin/lib/derby.jar:/opt/db-derby-10.6.1.0-bin/lib/derbynet.jar:/opt/db-derby-10.6.1.0-bin/lib/derbytools.jar:/opt/db-derby-10.6.1.0-bin/lib/derbyclient.jar
OS 名: SunOS
OS アーキテクチャー: sparc
OS バージョン: 5.10
Java ユーザー名: XXX
Java ユーザー・ホーム: /export/home/XXX
Java ユーザー dir: /export/home/XXX
java.specification.name: Java Platform API Specification
java.specification.version: 1.6
java.runtime.version: 1.6.0_20-b02
--------- Derby 情報 --------
JRE - JDBC: Java SE 6 - JDBC 4.0
[/opt/db-derby-10.6.1.0-bin/lib/derby.jar] 10.6.1.0 - (938214)
[/opt/db-derby-10.6.1.0-bin/lib/derbytools.jar] 10.6.1.0 - (938214)
[/opt/db-derby-10.6.1.0-bin/lib/derbynet.jar] 10.6.1.0 - (938214)
[/opt/db-derby-10.6.1.0-bin/lib/derbyclient.jar] 10.6.1.0 - (938214)
------------------------------------------------------
----------------- ロケール情報 ----------------
現行ロケール : [日本語/日本 [ja_JP]]
ロケールのサポートが見つかりました: [cs]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [de_DE]
&nbs;&nbs; バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [es]
     バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [fr]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [hu]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [it]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [ja_JP]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [ko_KR]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [pl]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [pt_BR]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [ru]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [zh_CN]
    バージョン: 10.6.1.0 - (938214)
ロケールのサポートが見つかりました: [zh_TW]
    バージョン: 10.6.1.0 - (938214)
------------------------------------------------------

DERBY_HOMEからデモ用のスクリプトをコピーします。

> cd /var/tmp

> mkdir DERBYTUTOR

> cd DERBYTUTOR

> cp $DERBY_HOME/demo/programs/toursdb/* .

> ls

ToursDB_schema.sql insertMaps.java loadFLIGHTAVAILABILITY1.sql loadTables.sql
build.xml loadAIRLINES.sql loadFLIGHTAVAILABILITY2.sql smallisle.gif
cupisle.gif loadCITIES.sql loadFLIGHTS1.sql toursdb_readme.html
disconnect.sql loadCOUNTRIES.sql loadFLIGHTS2.sql witchisle.gif

Derbyデータベースの作成とSQLステートメントの確認

Derbyツールのij(シェル・スクリプト)を使うと良く見えてこないんで、javaコマンドを明示的に起動してみます。

> java -jar $DERBY_HOME/lib/derbyrun.jar ij
ij バージョン 10.6
ij>

最初のデータベースに接続してみましょう(前回もやりましたが、おさらいの意味で)

> CONNECT 'jdbc:derby:firstdb;create=true';

コネクション・コマンドを説明します。

connect:データベースとの接続を確立します。

jdbc:derby:Derbyドライバーに関するJDBCプロトコル設定です。

firstdb:データベースの名前です。

;create=true:データベースを作成するために使用するDerbyURL属性です。Derbyには「create database」コマンドはありません。

;:セミコロンがijの終端子です。これは必ずです!!

■標準的なSQLを使って2つのカラムを定義したテーブルを作成します。

ij> CREATE TABLE FIRSTTABLE(ID INT PRIMARY KEY,NAME VARCHAR(12));
0 行が挿入/更新/削除されました

■3レコード追加します。

ij> INSERT INTO FIRSTTABLE VALUES(10,'TEN'),(20,'TWENTY'),(30,'THIRTY');
3 行が挿入/更新/削除されました

■テーブル中の全レコードを簡単な問合せで検索します。

ij> SELECT * FROM FIRSTTABLE;
ID         |NAME
------------------------
10         |TEN
20         |TWENTY
30         |THIRTY

3 行が選択されました

■カラムID=20で絞り込み検索をします。

ij> SELECT * FROM FIRSTTABLE WHERE ID = 20;
ID         |NAME
------------------------
20         |TWENTY

1 行が選択されました

■SQLスクリプト ToursDB_schema.sql を実行します。

ij> run 'ToursDB_schema.sql';
・・・中略・・・
ij> COMMIT;
ij>

■ijツールを終了します。

ij> exit;

<form action="http://www.google.co.jp/cse" id="cse-search-box">  
    <input type="hidden" name="cx" value="partner-pub-3407383286528802:x1hdk1ewp2s" />     <input type="hidden" name="ie" value="UTF-8" />     <input type="text" name="q" size="31" />     <input type="submit" name="sa" value="検索" />  
</form>

<script type="text/javascript" src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja"></script>



コメント ( 0 ) | Trackback ( )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

ちょっとした開発案件があって、3階層システム(3 Tier Model)でやりますと。
フル・オープン・ソースということで、DBに何を使うか。
PostgreSQLやMySQL、SQLiteといろいろあがって、そういえば、JavaDBってあったよね。
ということになって、勉強がてらJavaDBに触ってみました。

JDK1.6からJavaDBが標準で付いてくるのですが、最新のものを使ってみたかったので、単独でダウンロードしました。

JavaDBの正体はApache Derbyです。以下のJakartaサイトよりダウンロードします。

Derby Download

2010.6.23時点の最新は10.6.1.0となっています。

お試し環境は以下の通りです。

OS:WindowsXP
JDK:JDK1.6.0_20(JAVA_HOMEはいつものように予め設定しておいてください)

  1. db-derby-10.6.1.0-bin.zipをダウンロードして、Cドライブ直下に展開しました。
  2. 環境変数DERBY_HOMEとPATHを設定します。
  3.    DERBY_HOME=C:\db-derby-10.6.1.0-bin

       PATH=%PATH%;%DERBY_HOME%\bin

  4. コマンド・プロンプトを起動して、sysinfo.batをキックします。以下のような結果が表示されれば、環境変数の設定は上手くいっています。

     

    ------------------ Java 情報 ------------------Java バージョン:       1.6.0_20Java ベンダー:         Sun Microsystems Inc.Java ホーム:           C:\Java\jdk1.6.0_20\jreJava クラスパス:       .;C:\Java\jre1.6.0_16\lib\ext\QTJava.zip;C:\tani\lang\java\db-derby-10.6.1.0-bin/lib/derby.jar;C:\tani\lang\java\db-derby-10.6.1.0-bin/lib/derbynet.jar;C:\tani\lang\java\db-derby-10.6.1.0-bin/lib/derbyclient.jar;C:\tani\lang\java\db-derby-10.6.1.0-bin/lib/derbytools.jarOS 名:                 Windows XPOS アーキテクチャー:   x86OS バージョン:         5.1Java ユーザー名:       XXXXXXXXXXJava ユーザー・ホーム: C:\Documents and Settings\bttaniguchisgJava ユーザー dir:     C:\tani\lang\java\DERBYTUTORjava.specification.name: Java Platform API Specificationjava.specification.version: 1.6java.runtime.version: 1.6.0_20-b02--------- Derby 情報 --------JRE - JDBC: Java SE 6 - JDBC 4.0[C:\tani\lang\java\db-derby-10.6.1.0-bin\lib\derby.jar] 10.6.1.0 - (938214)[C:\tani\lang\java\db-derby-10.6.1.0-bin\lib\derbytools.jar] 10.6.1.0 - (938214)[C:\tani\lang\java\db-derby-10.6.1.0-bin\lib\derbynet.jar] 10.6.1.0 - (938214)[C:\tani\lang\java\db-derby-10.6.1.0-bin\lib\derbyclient.jar] 10.6.1.0 - (938214)----------------------------------------------------------------------- ロケール情報 ----------------現行ロケール :  [日本語/日本 [ja_JP]]ロケールのサポートが見つかりました: [cs]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [de_DE]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [es]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [fr]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [hu]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [it]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [ja_JP]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [ko_KR]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [pl]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [pt_BR]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [ru]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [zh_CN]         バージョン: 10.6.1.0 - (938214)ロケールのサポートが見つかりました: [zh_TW]         バージョン: 10.6.1.0 - (938214)------------------------------------------------------

設定はこんな感じで楽々ですね。

早速、DBにアクセスしてみます。OracleのSQL*Plusみたいなクライアント・ツールがあるので、試して見ます。

  1. ijを起動する。

    ij バージョン 10.6
    ij>

  2. 新規にDBを作成します。

    ij> CONNECT 'jdbc:derby:sampledb;create=true';
    ちなみに、sampledbが存在する場合は、以下の警告がでます。
    警告 01J01: データベース 'sampledb' は作成されませんでした。代わりに既存のデータベースに接続されました。

  3. 接続確認をします。

    ij> SHOW CONNECTIONS;
    CONNECTION0* - jdbc:derby:sampledb
    * = 現行接続

  4. 表(テーブル)の作成

    ij> CREATE FIRSTTABLE(ID INT PRIMARY KEY, NAME VARCHAR(20));
    0 行が挿入/更新/削除されました

  5. データの投入

    ij> INSERT INTO FIRSTTABLE VALUES(10,'TEN'),(20,'TWENTY'),(30,'THIRTY');
    3 行が挿入/更新/削除されました

    なんか、すごいINSERT文ですね。これで一括で入るんですね。。。

  6. 検索

    ij> SELECT * FROM FIRSTTABLE;
    ID         |NAME
    ------------------------
    10         |TEN
    20         |TWENTY
    30         |THIRTY

    3 行が選択されました

    ij> SELECT * FROM FIRSTTABLE WHERE ID=20;
    ID         |NAME
    ------------------------
    20         |TWENTY

    1 行が選択されました

今回は、組み込み環境としての確認までしました。
次回は、クラサバ環境としてチャレンジします。

<form id="cse-search-box" action="http://www.google.co.jp/cse">  
    <input type="hidden" value="partner-pub-3407383286528802:x1hdk1ewp2s" name="cx" />     <input type="hidden" value="UTF-8" name="ie" />     <input type="text" size="31" name="q" />     <input type="submit" value="検索" name="sa" />  
</form>

<script src="http://www.google.co.jp/cse/brand?form=cse-search-box&amp;lang=ja" type="text/javascript"></script>



コメント ( 0 ) | Trackback ( )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする