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



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

今までごちゃごちゃと書いてきましたが、お分かりの通り、Derbyのマニュアル、Getting Started with Derby(さあ、Derbyを始めよう!!) からの引用です。

とにかく、今回がその最後になりますが、クラサバ環境でクライアント・ドライバーを使用したJDBCプログラムをこしらえて、動かしてみようと思います。
例の如くDERBYTUTORへ移動します。

前回はその直下にsrcというディレクトリを作成して、デモをコピーしてきています。

その中のWwdEmbedded.javaを弄って動くものを作ります。

■WwdEmbedded.javaをWwdClient.javaとしてコピーします。

> cp WwdEmbedded.java WwdClient.java

■WwdClient.javaを編集する。

クラス定義をまずは変えないといけません。

修正前
    public class WwdEmbedded

修正後
    public class WwdClient

続いて、ドライバー名、URL属性名を変えます。

修正前
    // define the driver to use
        String driver = "org.apache.derby.jdbc.EmbeddedDriver";
    // the database name
        String dbName = "jdbcDemoDB";
    // define the Derby connection URL to use
        String connectionURL = "jdbc:derby:" + dbName + ";create=true";

修正後
    // define the driver to use
        String driver = "org.apache.derby.jdbc.ClientDriver";
    // the database name
        String dbName = "jdbcDemoDB";
    // define the Derby connection URL to use
        String connectionURL = "jdbc:derby://localhost:1527/" + dbName + ";create=true";

■ビルド(コンパイル)します。

> ant -f build-db.xml

■別端末エミュレータにてDBサーバーを起動します。

/var/tmp/DERBYTUTORに移動して、以下のコマンドを入力します。

> java -jar $DERBY_HOME/lib/derbyrun.jar server start
2010-06-24 07:03:35.922 GMT : セキュリティーマネージャーが Basic サーバーセキュリティーポリシーを使用してインストールされました。 2010-06-24 07:03:37.634 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) が起動し、ポート 1527 で接続の受け入れ準備が完了しました

■クライアントを起動します。

まずは、前回作成したbuild-db.xmlのembの次に以下を追加します。

        <target name="client" depends="build">
               <java classname="WwbClient" fork="yes">
                     <classpath refid="cp">
               <java>
        </target>

> ant -e -f build-db.xml client(Emacsモードで)
・・・中略・・・
client:
org.apache.derby.jdbc.ClientDriver loaded.
Connected to database jdbcDemoDB
Enter wish-list item (enter exit to end):
a sunny day
  __________________________________________________
On 2010-06-24 00:49:04.977 I wished for a peppermint stick
On 2010-06-24 00:49:12.258 I wished for a long vacation
On 2010-06-24 16:20:18.104 I wished for a sunny day
  __________________________________________________
Enter wish-list item (enter exit to end):
a new car
  __________________________________________________
On 2010-06-24 00:49:04.977 I wished for a peppermint stick
On 2010-06-24 00:49:12.258 I wished for a long vacation
On 2010-06-24 16:20:18.104 I wished for a sunny day
On 2010-06-24 16:20:22.523 I wished for a new car
  __________________________________________________
Enter wish-list item (enter exit to end):
exit
Closed connection
Getting Started With Derby JDBC program ending.

BUILD SUCCESSFUL
Total time: 1 minute 18 seconds
※ボールド体が入力項目です。

■サーバーが起動している端末とは別の端末エミュレータで停止させます。

/var/tmp/DERBYTUTORに移動して、以下のコマンドを入力します。

> java -jar $DERBY_HOME/lib/derbyrun.jar server shutdown
そうすると、サーバーを起動した端末側で以下が出力されます。
2010-06-24 07:54:03.975 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) はシャットダウンしました

ざっとですが、Derbyを使ってみて、ちょっとしたアプリ開発であれば、問題なさげな感があります。 この後は、もう少し掘り下げて、ツールの使い方や、プログラミングを勉強していこうと思います。 フレーム・ワークへの組み込みなんかも意外と簡単にできそうです。 <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="&#x691c;&#x7d22;" />
</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>

次は組み込みドライバーを使ったJDBCプログラムを試してみます。
例の如くDERBYTUTORへ移動します。

> /var/tmp/DERBYTUTOR

ここでDERBYのデモプログラムを使ってみます。

> mkdir src
> cp $DERBY_HOME/demo/programs/workingwithderby/* src/
> ls src

WwdClientExample.class WwdEmbedded.class WwdUtils.class readme.html
WwdClientExample.java WwdEmbedded.java WwdUtils.java

.classファイルは邪魔なので削除してください。

DERBYTUTOR直下で以下のようなbuild.xmlを作成しました。

■build-db.xml

<?xml version="1.0" encoding="EUC-JP"?>

<project name="derby-demo" default="build" basedir=".">
    <property name="src.dir" value="src" />
    <property name="dest.dir" value="classes" />
    <property environment="env" />

    <path id="cp">
        <pathelement location="${dest.dir}" />
        <fileset dir="${env.DERBY_HOME}/lib">
            <include name="**/*.jar" />
        </fileset>
    </path>

    <target name="echo">
        <property name="echo.path" refid="cp" />
        <echo message="${echo.path}" />
    </target>

    <target name="init">
        <tstamp />
    </target>

    <target name="build" depends="init">
        <mkdir dir="${dest.dir}" />
        <javac srcdir="${src.dir}" destdir="${dest.dir}" debug="yes">
            <classpath refid="cp" />
            <include name="*.java" />
        </javac>
    </target>

    <target name="emb" depends="build">
        <java classname="WwdEmbedded" fork="yes">
            <classpath refid="cp" />
        </java>
    </target>

</project>

■プログラムのコンパイルおよび起動の確認

> ant -f build-db.xml build
> ant -f build-db.xml emb
emb:
     [java] org.apache.derby.jdbc.EmbeddedDriver loaded.
     [java] Connected to database jdbcDemoDB
     [java]  . . . . creating table WISH_LIST
     [java] Enter wish-list item (enter exit to end):
a peppermint stick
     [java]   __________________________________________________
     [java] On 2010-06-24 00:49:04.977 I wished for a peppermint stick
     [java]   __________________________________________________
     [java] Enter wish-list item (enter exit to end):
a long vacation
     [java]   __________________________________________________
     [java] On 2010-06-24 00:49:04.977 I wished for a peppermint stick
     [java] On 2010-06-24 00:49:12.258 I wished for a long vacation
     [java]   __________________________________________________
     [java] Enter wish-list item (enter exit to end):
exit
     [java] Closed connection
     [java] Database shut down normally
     [java] Getting Started With Derby JDBC program ending.

<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でシェアする




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

第2弾として、クラサバ環境でJavaDBを使用してみます。
前回作成したDERBYTUTORへ移動します。
> /var/tmp/DERBYTUTOR
■別の端末エミュレーターを使ってネットワーク・サーバーを起動します。

> java -jar $DERBY_HOME/lib/derbyrun.jar server start
2010-06-23 14:49:32.045 GMT : セキュリティーマネージャーが Basic サーバーセキュリティーポリシーを使用してインストールされました。
2010-06-23 14:49:33.738 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) が起動し、ポート 1527 で接続の受け入れ準備が完了しました

■ijツールを起動します。

> ij

■クライアント・ドライバーを使ってデータベースに接続します。

> CONNECT 'jdbc:derby://localhost:1527/seconddb;create=true';

■次のSQLステートメントを使って2つのカラムを定義したテーブルを作成します。

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

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

> INSERT INTO SECONDTABLE VALUES(100,'ONE HUNDRED'),(200,'TWO HUNDRED'),(300,'THREE HUNDRED');
3 行が挿入/更新/削除されました

■テーブルを全件検索します。

> SELECT * FROM SECONDTABLE;
ID         |NAME
--------------------------
100        |ONE HUNDRED
200        |TWO HUNDRED
300        |THREE HUNDRED

3 行が選択されました

■WHERE句を使ってテーブルのサブセットを検索します。

> SELECT * FROM SECONDTABLE WHERE ID=200;
ID         |NAME
--------------------------
200        |TWO HUNDRED

1 行が選択されました

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

> exit;

■Derbyネットワーク・サーバーを停止します。

> java -jar $DERBY_HOME/lib/derbyrun.jar server shutdown

そうすると、別端末エミュレータで起動したネットワーク・サーバーが以下を出力して停止します。
2010-06-23 15:15:15.660 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) はシャットダウンしました

<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でシェアする