H2 DataBase Engineを使ってみよう〜解決編〜
調査の結果ようやくわかった。
JAVAからは
C:\eclipse\workspace\H2DBETest\test.data.db
を読みにいき、
ブラウザのDBマネージャーは
C:\H2\bin\test.data.db
に対して操作をおこなっていた。
そりゃ合うわけねーだろ!
ならば解決策はどっちかに統一すればいい。
データも含めてEclipseのプロジェクト側で持つか、JDBCの接続文字列を変えるか。
JDBCの接続文字列を変えるのも面倒なのでコンソールを開く時にeclipseのプロジェクト直下に保存されているデータにアクセスするようにしよう。
コンソールで接続する時に
jdbc:h2:file:C:/eclipse/workspace/H2DBETest/test
とすればいい
コンソールで接続して、改めて以下のSQLを流し込む
create schema red authorization sa; create table RED.COLOR(id numeric not null primary key,name varchar2(30)); insert into RED.COLOR values(1,'red'); insert into RED.COLOR values(2,'blue');
スキーマ版にしたのでソースの方も修正する
redrisefirm.sample.h2.entity.Color.java
public class Color { public static final String TABLE = "RED.COLOR"; private int id; private String name; (getter/setterは省略) }
ColorDao_getAllColors.sql
select id,name from RED.COLOR order by id;
これでテストを実行したらグリーン!
よかったよかった。これでまた1つ使える道具が増えた。
今回はサクっとさわりということで全然試してないですが、H2ではスキーマやビューなんかも使えるようですし、
付属もpdfのマニュアルも情報が満載のようです。(英語ですがそんなに気にならないでしょう)
今後が非常に楽しみです。
最後に小情報、ブラウザから管理画面コンソールを開いていると、DBに対してロックをかけているためテストが通りません(SQLRuntimeExceptionで落ちる)