LoginSignup
0
0

More than 3 years have passed since last update.

やってみよう! Apache Derby

Last updated at Posted at 2020-11-04

はじめに

Apache DerbyはJavaで実装されたRDBMSです。お手軽に使えるので便利です。
今回は導入方法と、簡単な使い方をメモしておきます。
(簡単に設定・実行できますが、自分はijの起動でJAVA_HOMEのエラーが出てはまりました・・・)

環境:Mac OS 10.15.7

Derbyのダウンロード

以前はJDKの中に入っていましたが、最近のJDKでは入っていません。自分でダウンロードする必要があります。

  • Apatch Derbyをダウンロードします。
  • ダウンロードしたら適当なフォルダに解凍します。 (ここでは/Users/XXXX/derbyに解凍)

設定

インストールしたフォルダ配下のbinにPATHを通しておきます。
.zprofileに、/Users/XXXX/derby/binを追加します。

~/.zprofile
export PATH=/Users/XXXX/derby/bin:$PATH

ijの起動

ijはDerbyのデータベースの作成やコマンドの実行などを行うツールです。
terminalでijを実行します。成功すると以下のように表示されます。

ijバージョン10.15
ij> 



以下のように表示され起動できないこともあります。

Error: JAVA_HOME is not defined correctly.
We cannot execute /System/Library/Frameworks/JavaVM.framework/Home/bin/java

このときはJAVA_HOMEの設定がうまくいっていません。ijを修正して対応します。

ij
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  Darwin*) darwin=true
           if [ -z "$JAVA_HOME" ] ; then
             # JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
             JAVA_HOME=$(/usr/libexec/java_home)
           fi
           ;;
esac

中段あたりのJAVA_HOMEの設定箇所を$(/usr/libexec/java_home) に変更します。
これで起動できるようになります。

データベースの作成

terminalでijを実行した状態で、以下のコマンドを実行します。

ij> connect 'jdbc:derby:/Users/XXXX/db/test.db;create=true';

/Users/XXXX/db/配下にtest.dbというファイル(データベース)を開こうとします。
create=trueをつけると、ファイルが存在しない場合は自動的に作成します。
これでデータベースが作成(接続)されます。

テーブルの作成

データベースに接続できたので、次はテーブルを作成します。

createTable.sql
CREATE TABLE USER_INFO (
    USER_ID VARCHAR(10) PRIMARY KEY NOT NULL,
    USER_NAME VARCHAR(20) NOT NULL,
    ADDRESS VARCHAR(200),
    POST_CODE VARCHAR(7),
    AGE INTEGER,
    BIRTHDAY DATE
);

これをコピーしてijに貼り付けるか、runコマンドで実行します。

ij> run 'createTable.sql'

これでテーブルが作成できました。

JDBC接続

アプリなどからJDBC接続でアクセスすることが多いと思います。 

JdbcDriver=org.apache.derby.jdbc.EmbeddedDriver
JdbcUrl=jdbc:derby:/Users/XXXX/db/test.db;      

jdbcDriverは、Derbyインストール先の/lib/derbytools.jarにあるのでクラスパスに追加します。

derby.jarの場合もあります。バージョンによって異なります。

コマンド

よく使う便利なコマンドを紹介します

テーブル一覧

ij> show tables;

テーブル構造の表示

ij> describe user_info;  

user_info はテーブル名

スクリプトファイルの実行

ij> run ファイル名;  

ファイル名はフルパスまたはijを起動したフォルダからの相対パス

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0