はじめに
こんばんわ、きりです。
本記事はNablarchを使ってみようのサブ記事として作成しております。
Nablarchのブランクプロジェクトでは初期の設定で「H2 Database」が設定されている。
pom.xmlを確認すると、nablarch.db.jdbcDriverやnablarch.db.urlがh2になっていることが確認できる。
「H2 Database」を使おうとするたびに使い方を忘れてしまうので、備忘録として記事を投稿します。
H2 Databaseとは
Javaプラットフォーム上で動く、データベース。
OracleデーターベースやMySQLなどの重厚なデータベースではないが、JDBCにも対応しており、開発中に利用するデータベースとして利用できる。
目標
- ブラウザからアクセスし、テーブル作成、レコード追加を実行する
作業の流れ
- H2 Databaseのコンソールサーバーを起動する
- ブラウザでログイン
- テーブルの追加
- レコードの挿入
- レコードの参照
- ログアウト
前提
Nablarchのウェブアプリケーションのブランクプロジェクトがローカルに作成されていること
H2 Databaseのコンソールサーバーを起動する
ブランクプロジェクトを作成すると、プロジェクトルート/h2/bin フォルダ に
- h2.bat
- h2.sh
- h2w.bat
が用意されているので、自身の環境に合わせ、シェルスクリプト(またはバッチファイル)を実行する
ブラウザでログイン
ブラウザで
http://localhost:8082
にアクセスするとログイン画面が表示される
日本語表示も可能なようで、謎のこだわりを感じる
初期設定ではログイン情報は以下、
名前 | 値 |
---|---|
JDBC URL | jdbc:h2:h2/db/SAMPLE |
ユーザー名 | SAMPLE |
パスワード | SAMPLE |
※JDBC URLはブランクプロジェクトをそのまま使う場合は、上記の通りのパスとなる
※ログインすると、プロジェクトルート/h2/dbにSAMPLE.h2.dbとSAMPLE.h2.lock.dbが作成されていることがわかる。SAMPLE.h2.dbがデータベースの実体なので、このファイルをバックアップしたり、削除したりすることで、復元やクリアが可能。クリアしても再接続時に再作成されるが、当然、ユーザー側で追加したテーブルは削除されている。
ログインが成功すると、以下のようなコンソール画面が表示される
テキストエリアにSQL文を入力し、「実行」ボタンをタップすると、処理が行えるようだ。
試しに、テーブルの一覧を表示してみる。
おぉ!!
なんか、やってやった感がある。。自分は何もやってないけど。
※「CODE_NAME」「CODE_PATTERN」「USER_SESSION」はデフォルトでINSERTされているテーブルです。
テーブルの追加
今回は安易ながらも、Webアプリケーションのトップページへのアクセスログを管理するテーブルを作成します。
項目はシンプルに以下、
- ID
- いつ(ACCESS_TIME)
- 誰が(USER_ID)
- どこに(REQUEST_ID)
リファレンスとテンプレートに既に用意されているcreate.sql(db/ddl/h2/create.sql)を参考にコマンドを作成。
CREATE TABLE PUBLIC.ACCESS_LOG (
ID CHAR(8) PRIMARY KEY,
ACCESS_TIME TIMESTAMP(23, 10) NOT NULL,
USER_ID CHAR(8) NOT NULL,
REQUEST_ID CHAR(8)
);
レコードの挿入
テーブル作成時と同様にコンソールからレコードを挿入してみる。
構文は一般的なinsert文を利用
INSERT INTO ACCESS_LOG (
ID,
ACCESS_TIME,
USER_ID
) VALUES (
'33333',
'2019-05-02 12:48:35',
'moge'
);
レコードの参照
念のため、INSERTしたレコードが追加されているかを確認
SELECT * FROM ACCESS_LOG;
ログアウト
終了時は、「切断」ボタンをタップ。
最後に
最初は、DBといえば「Oracle」や「MySQL」とかだろー!と思ってましたが、開発時に簡単に利用できるH2はホント便利だなと感じました。