<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はいつものように予め設定しておいてください)
- db-derby-10.6.1.0-bin.zipをダウンロードして、Cドライブ直下に展開しました。
- 環境変数DERBY_HOMEとPATHを設定します。
DERBY_HOME=C:\db-derby-10.6.1.0-bin
PATH=%PATH%;%DERBY_HOME%\bin
- コマンド・プロンプトを起動して、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みたいなクライアント・ツールがあるので、試して見ます。
- ijを起動する。
ij バージョン 10.6
ij>
- 新規にDBを作成します。
ij> CONNECT 'jdbc:derby:sampledb;create=true';
ちなみに、sampledbが存在する場合は、以下の警告がでます。
警告 01J01: データベース 'sampledb' は作成されませんでした。代わりに既存のデータベースに接続されました。
- 接続確認をします。
ij> SHOW CONNECTIONS;
CONNECTION0* - jdbc:derby:sampledb
* = 現行接続
- 表(テーブル)の作成
ij> CREATE FIRSTTABLE(ID INT PRIMARY KEY, NAME VARCHAR(20));
0 行が挿入/更新/削除されました
- データの投入
ij> INSERT INTO FIRSTTABLE VALUES(10,'TEN'),(20,'TWENTY'),(30,'THIRTY');
3 行が挿入/更新/削除されました
なんか、すごいINSERT文ですね。これで一括で入るんですね。。。
- 検索
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&lang=ja" type="text/javascript"></script>