0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Nablarch開発におけるH2 Databaseの利用方法

Last updated at Posted at 2022-03-19

はじめに

こんばんわ、きりです。
本記事はNablarchを使ってみようのサブ記事として作成しております。

Nablarchのブランクプロジェクトでは初期の設定で「H2 Database」が設定されている。
pom.xmlを確認すると、nablarch.db.jdbcDriverやnablarch.db.urlがh2になっていることが確認できる。
「H2 Database」を使おうとするたびに使い方を忘れてしまうので、備忘録として記事を投稿します。

H2 Databaseとは

Javaプラットフォーム上で動く、データベース。
OracleデーターベースやMySQLなどの重厚なデータベースではないが、JDBCにも対応しており、開発中に利用するデータベースとして利用できる。

目標

  • ブラウザからアクセスし、テーブル作成、レコード追加を実行する

作業の流れ

  1. H2 Databaseのコンソールサーバーを起動する
  2. ブラウザでログイン
  3. テーブルの追加
  4. レコードの挿入
  5. レコードの参照
  6. ログアウト

前提

Nablarchのウェブアプリケーションのブランクプロジェクトがローカルに作成されていること

H2 Databaseのコンソールサーバーを起動する

ブランクプロジェクトを作成すると、プロジェクトルート/h2/bin フォルダ に

  • h2.bat
  • h2.sh
  • h2w.bat

が用意されているので、自身の環境に合わせ、シェルスクリプト(またはバッチファイル)を実行する

ブラウザでログイン

ブラウザで
http://localhost:8082
にアクセスするとログイン画面が表示される
日本語表示も可能なようで、謎のこだわりを感じる

image.png

初期設定ではログイン情報は以下、

名前
JDBC URL jdbc:h2:h2/db/SAMPLE
ユーザー名 SAMPLE
パスワード SAMPLE

※JDBC URLはブランクプロジェクトをそのまま使う場合は、上記の通りのパスとなる
※ログインすると、プロジェクトルート/h2/dbにSAMPLE.h2.dbとSAMPLE.h2.lock.dbが作成されていることがわかる。SAMPLE.h2.dbがデータベースの実体なので、このファイルをバックアップしたり、削除したりすることで、復元やクリアが可能。クリアしても再接続時に再作成されるが、当然、ユーザー側で追加したテーブルは削除されている。

ログインが成功すると、以下のようなコンソール画面が表示される
image.png

テキストエリアにSQL文を入力し、「実行」ボタンをタップすると、処理が行えるようだ。
試しに、テーブルの一覧を表示してみる。

image.png

おぉ!!
なんか、やってやった感がある。。自分は何もやってないけど。

※「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;

ログアウト

終了時は、「切断」ボタンをタップ。

image.png

最後に

最初は、DBといえば「Oracle」や「MySQL」とかだろー!と思ってましたが、開発時に簡単に利用できるH2はホント便利だなと感じました。

参考URL

H2 Database
コマンドリファレンス

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?