やりたいこと
JunitテストにDB接続のテストデータを作成するために、H2データベースを利用して、Windows10 環境でテストデータを作成してみたので、メモを書きます。
環境は以下となります。
- Java 1.8
- H2 1.3.175
H2データベースの起動
H2データベースのZipファイルを展開して、binフォルダ配下のh2.bat
をダブルクリックします。
正常に起動できたら、以下のような画面が表示されます。
今回は、ロカール上の作業のため、「保存済み設定」でH2 Databaseのモード を「Generic H2(Embedded)」を選択します。
JDBC URLのところ、jdbc:h2:./../test
を指定します。
デフォルドのユーザー名は、sa
、パスワード不要です。
接続ボタンを押下すると、テストデータ作成用画面に遷移できます。
テストデータの作成
以下の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');
データベースの左側にOPE
とPROJECT
のテーブルを生成されます。
また、test.h2.db
のファイルが生成されたため、このデータベースを利用して、Junitテストを実行できます。
今回、H2バージョンは 1.3.x
なので、生成されたデータベースファイルは <databaseName>.h2.db
です。
H2バージョン 1.4.x
以上を利用する場合、生成されるデータベースファイルは <databaseName>.mv.db
です。
注意点、現時点最新の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'