Symfoware

Symfowareについての考察blog

Apache DerbyをFreeBSD 10.1で起動し、別の端末からJDBCで接続する

Pure Javaなデータベース「Derby」
http://db.apache.org/derby/

FreeBSD 10.1で使ってみます。


OpenJDKのインストールとDerbyの取得



今回はOpenJDKを使用して動かしてみます。
FreeBSD 10.1にOpenJDK 8をインストールする

Oracle JDKならDerbyは同梱されており、Windowsなら
「C:\Program Files\Java\jdk1.8.0_40\db\」
などにインストールされるのですが、
OpenJDKには同梱されていないようです。

ダウンロードページから「10.11.1.1 (August 26, 2014)」をダウンロードしました。
Apache Derby: Downloads

展開したファイルを

/usr/local/opt/derby


に配置しました。




Derbyの起動



Derbyはアプリケーションに組み込んで使用することができますが、
サーバーとして起動することもできます。

今回はサーバーとして起動し、使用してみます。
起動用のスクリプトが用意されているので、それを使用します。


# cd /usr/local/opt/derby/bin/
# ./startNetworkServer &
Sun Jul 05 14:21:27 JST 2015 : セキュリティ・マネージャがBasicサーバー・セキュリティ・ポリシーを使用してインストールされました。
Sun Jul 05 14:21:28 JST 2015 : Apache Derby Network Server - 10.11.1.1 - (1616546)が起動し、ポート1527で接続の受入れ準備が完了しました




停止はstopNetworkServerを使用します。


# ./stopNetworkServer
Sun Jul 05 14:22:42 JST 2015 : Apache Derby Network Server - 10.11.1.1 - (1616546)は停止しました
Sun Jul 05 14:22:42 JST 2015 : Apache Derby Network Server - 10.11.1.1 - (1616546)は停止しました







外部からの接続



外部からの接続を許可する場合、起動時にオプション「-h」を付けて、
リッスンするIPを指定します。

また、データベースファイルを作成するパスは、
起動時のカレントディレクトリからの相対パスになるようなので、
/usr/local/opt/derbyでスクリプトを実行しました。


# cd /usr/local/opt/derby
# bin/startNetworkServer -h 0.0.0.0




サンプルはJavaで作成します。
必要なjarファイルは、Derbyを解凍したフォルダのlibにある
「derbyclient.jar」
だけでOKです。
このファイルをビルドパスに含めておきます。

簡単なサンプルはこんな感じになりました。


  1. package sample;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6. public class MainProcess {
  7.     
  8.     public static void main(String... args) {
  9.         Connection con;
  10.         
  11.         
  12.         try {
  13.             con = DriverManager.getConnection("jdbc:derby://192.168.1.103:1527/data/sample;create=true");
  14.             
  15.             con.setAutoCommit(false);
  16.             
  17.             Statement st = con.createStatement();
  18.             
  19.             st.execute("create table t1 (id int, name varchar(100))");
  20.             con.commit();
  21.             
  22.             st.execute("truncate table t1");
  23.             st.execute("insert into t1 (id,name) values (1, '日本語登録テスト')");
  24.             con.commit();
  25.             
  26.             ResultSet rs = st.executeQuery("select * from t1");
  27.             while(rs.next()) {
  28.                 System.out.println("id=" + rs.getInt("id") + ", " + "name=" + rs.getString("name"));
  29.             }
  30.             
  31.             
  32.             rs.close();
  33.             st.close();
  34.             
  35.             con.commit();
  36.             con.close();
  37.             
  38.         } catch(Exception e) {
  39.             e.printStackTrace();
  40.         }
  41.         
  42.         System.out.println("connection ok");
  43.     }
  44.     
  45.     
  46. }




実行してみます。


id=1, name=日本語登録テスト
connection ok




ちゃんとテーブルの作成、データの登録が行えたようです。
実行すると、


/usr/local/opt/derby/data/sample



というフォルダが作成され、中にファイルが生成されているはずです。

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/07/05(日) 14:42:26|
  2. Java
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Apache Derbyのバックアップとリストア | ホーム | FreeBSD 10.1にOpenJDK 8をインストールする>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1741-6bfdda36
この記事にトラックバックする(FC2ブログユーザー)