LoginSignup
0
0

More than 3 years have passed since last update.

H2 Databaseを用いてテスト用データを作成

Last updated at Posted at 2021-03-29

やりたいこと

JunitテストにDB接続のテストデータを作成するために、H2データベースを利用して、Windows10 環境でテストデータを作成してみたので、メモを書きます。

環境は以下となります。
* Java 1.8
* H2 1.3.175

H2データベースの起動

H2データベースのZipファイルを展開して、binフォルダ配下のh2.batをダブルクリックします。

111.png

正常に起動できたら、以下のような画面が表示されます。

111.png

今回は、ロカール上の作業のため、「保存済み設定」でH2 Databaseのモード を「Generic H2(Embedded)」を選択します。

JDBC URLのところ、jdbc:h2:./../testを指定します。
デフォルドのユーザー名は、sa、パスワード不要です。

接続ボタンを押下すると、テストデータ作成用画面に遷移できます。
111.png

テストデータの作成

以下のSQLを実行します。

CREATE TABLE OPE(USER_ID CHAR(22), COMPANY_NM VARCHAR(100), DEPARTMENT_NM VARCHAR(100));
CREATE TABLE PROJECT(PROJECT_ID CHAR(22), PROJECT_NAME VARCHAR(100), PROJECT_TYPE VARCHAR(100));
INSERT INTO OPE (USER_ID, COMPANY_NM, DEPARTMENT_NM) VALUES('111111111', 'サンプル', 'sample');
INSERT INTO OPE (USER_ID, COMPANY_NM, DEPARTMENT_NM) VALUES('0000000001', 'サンプル2', 'sample2');
INSERT INTO PROJECT (PROJECT_ID, PROJECT_NAME, PROJECT_TYPE) VALUES('0000000001', 'メリオダス', 'test');
INSERT INTO PROJECT (PROJECT_ID, PROJECT_NAME, PROJECT_TYPE) VALUES('0000001017', 'メリオダス2', 'test2');

データベースの左側にOPEPROJECTのテーブルを生成されます。
111.png

また、test.h2.dbのファイルが生成されたため、このデータベースを利用して、Junitテストを実行できます。

今回、H2バージョンは 1.3.x なので、生成されたデータベースファイルは <databaseName>.h2.db です。
H2バージョン 1.4.x 以上を利用する場合、生成されるデータベースファイルは <databaseName>.mv.db です。

111.png

注意点、現時点最新のH2バージョン 1.4.200のデータベースを利用する際、以下のエラーが出でました。
H2データベースのissue #2078にも同じ事象が出ているそうです。その場合、1.4.199のバージョンを利用してください。

java.lang.IllegalStateException: Unable to read the page at position 281474976722688 [1.4.199/6]
...

※データベースにログインする際、パスワードを追加したい場合、以下のコマンドを実行します。

ALTER USER sa SET PASSWORD 'password'
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