ORMLite を使用して新しい H2 データベースを作成すると、データベース ファイルが作成されますが、アプリケーションを閉じると、データベースに保存されていたすべてのデータが失われます。
JdbcConnectionSource connection =
new JdbcConnectionSource("jdbc:h2:file:" + path.getAbsolutePath() + ".h2.db");
TableUtils.createTable(connection, SomeClass.class);
Dao<SomeClass, Integer> dao = DaoManager.createDao(connection, SomeClass.class);
SomeClass sc = new SomeClass(id, ...);
dao.create(sc);
SomeClass retrieved = dao.queryForId(id);
System.out.println("" + retrieved);
このコードは良い結果をもたらします。保存したオブジェクトを印刷します。しかし、今度はテーブルを作成せずに新しいオブジェクトを保存せずにアプリケーションを再起動すると、必要なテーブルが存在しないという例外が発生します。
JdbcConnectionSource connection =
new JdbcConnectionSource("jdbc:h2:file:" + path.getAbsolutePath() + ".h2.db");
Dao<SomeClass, Integer> dao = DaoManager.createDao(connection, SomeClass.class);
SomeClass retrieved = dao.queryForId(id); // will produce an exception..
System.out.println("" + retrieved);