[DB] Derby(JavaDB)を使ってみた
Derbyって何?
- IBMから寄贈されたDBで、Javaで作られている。
- 組み込みとクライアント/サーバの2種類の方法で使える。
- 軽い。空のDBを作るってみたら、1.75MBだった。
- 設定が簡単。環境変数を3つほど設定すれば使えました。
Derbyのインストールと設定方法
- ダウンロード&インストール
ダウンロードは、以下のサイトから出来ました。
http://db.apache.org/derby/derby_downloads.html
上記のサイトで、「db-derby-10.x.x.x-bin.zip」をダウンロードして、適当なディレクトリに解凍する。
これでインストール完了。
- 環境設定
環境パスに、以下3つを設定する。
1、%DERBY_HOME%を設定する。上記で解凍したディレクトリが「C:\derby.10.6.1.0」の場合、「%DERBY_HOME%=C:\derby.10.6.1.0」とする。
2、%DERBY_INSTALL%を設定する。「DERBY_INSTALL=%DERBY_HOME%」でOK。
3、PATHに「%DERBY_HOME%\bin」を追加する。
とりあえずDerbyを使ってみる。
1、動作確認
コマンドプロンプトにて、「sysinfo」と入力し、実行してみる。
⇒Javaの情報とDerbyの情報がでるはず。
2、DBに接続
2-1 コマンドプロンプトにて、「ij」と入力し、実行する。コマンド入力が「ij>」になるはず。
2-2 「connect 'jdbc:derby:c:¥DB¥DerbyTestDB;create=true';」って実行する。DBが作成され、そのDBにつながった状態となる。ちなみにメッセージは何も出ないが、ディレクトリ(c:¥DB¥DerbyTestDB)は出来てるはず。
「create=true」は、指定したディレクトリがない場合、作ってと命令するオプション。
3、DDLやDMLの実行
3-1 「create table MEMBER (id varchar(4),name varchar(100));」と入力し実行すると、テーブルが出来る。
3-2 「insert into MEMBER values('1','yoheiM');」で、データが登録できる。
3-3 「select * from MEMBER;」で検索できる。
4、終わるときは
「exit」と入力する。
Derby(組み込み版)をJavaでとりあえず使ってみた場合のソース例
import java.sql.ResultSet; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; public class DBConnectionSampleMain { public static void main(String[] args) { String framework = "embedded"; String driver = "org.apache.derby.jdbc.EmbeddedDriver"; String protocol = "jdbc:derby:"; try{ Class.forName(driver).newInstance(); System.out.println("Derby DB Driver is loaded"); Connection conn = null; conn = DriverManager.getConnection(protocol + "C:\\DB\\DerbyTestDB"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select count(*) from member"); while(rs.next()){ int count = rs.getInt(1); System.out.println(count); } rs.close(); stmt.close(); conn.close(); System.out.println("fin"); }catch(Exception e){ e.printStackTrace(); } } }
最後に
Derbyって簡単に使えて良いなと思いました。
開発の仕事でDBがまだないときとかに、使うのに便利そう。
以下を参考にDerbyを使ってみました。
http://db.apache.org/derby/docs/dev/ja_JP/getstart/getstart-single.html
http://www.itarchitect.jp/enterprise/-/29481-2.html
http://www.itarchitect.jp/enterprise/-/30601.html