JavaDBの使い方

| コメント(4)

JavaDBを使うと、Javaアプリケーションにデータベースを埋め込むことができます。

Javaでスタンドアローンのデスクトップアプリ等を書くときに、
別途PostgreSQLやMySQLを利用する必要がなく、便利です。

JavaDBでは、テーブル名やフィールド名に漢字を使うこともできます。

サンプルコード

<実行結果>
>java -classpath derby.jar;. JavaDBTest
2008年12月13日に出席したのは、
三鷹 太郎さん
吉祥寺 花子さん
です。

●JavaDBがインストールされる場所
JDK6をデフォルトインストールすると、Windowsの場合
C:\Program Files\Sun\JavaDB
にJavaDBがインストールされます。
C:\Program Files\Sun\JavaDB\docs
に詳しいドキュメントがあります。
コンパイル時や実行時に必要なjarファイルは、
C:\Program Files\Sun\JavaDB\lib\derby.jar
です。

●データベースの新規作成とコネクションの開始
データベースURLは、jdbc:derby:データベースを保存するパス
のように指定します。オプションで create=true とすると、
データベースが存在しない場合は、新規作成されます。

java.sql.Connection con = DriverManager.getConnection("jdbc:derby:db;create=true");

JavaDBのログは、デフォルトではカレントディレクトリのderby.logに出力されますが、
System.setProperty("derby.stream.error.file", ログファイルのパス);
とすると、任意の場所に出力できます。

あとは、JDBCでPostgreSQLやMySQLにアクセスするのと同じように、
データベースを使えます。

●テーブルの新規作成
JavaDB特有の話ではありませんが、
次のようにするとテーブルが存在しない場合、新規作成することができます。

DatabaseMetaData md = con.getMetaData();
ResultSet rs = md.getTables(null, null, テーブル名, null);
if (rs.next()) {
// テーブルが存在する。
} else {
// テーブルが存在しないので作成する。
Statement s = con.createStatement();
s.execute("CREATE TABLE テーブル名 (・・・)");
s.close();
}
rs.close();

●データベースのシャットダウン
アプリケーション終了時に、次のようにしてJavaDBをシャットダウンします。

try {
con.close();
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (SQLException ex) {
if (!ex.getSQLState().equals("XJ015")) {
ex.printStackTrace();
}
}

正常にシャットダウンしてもSQLExceptionが発生します。
なので、SQLStateがXJ015(Derby system shutdown.) であることを確認します。

なお、SQLStateの一覧は、
C:\Program Files\Sun\JavaDB\docs\html\ref\rrefexcept71493.html
にあります。

コメント(4)

参考になりました
ありがとうございます。

お役に立てて、嬉しいです。

勉強させていただきました。ありがとうございます。

こちらこそ、コメント頂きありがとうございます。