インメモリで初期化を行います。そのときにRunscriptを使うサンプルです。 - H2
2014/08/30
h2
java
maven
H2です。
インメモリで初期化を行います。そのときにRunscriptを使うサンプルです。
URLに直接runscriptを指定していないのは、SQLファイルを置く場所を柔軟にコントロールしたいからです、例えばjar内部とか。
別メモ
通常のjavaのプロジェクトをmavenプロジェクトに変更して、必要なものがあれば、「pom xxxxxx」で検索すると、
Maven Repository: Search/Browse/Explore
がでてくるので、そこで必要なものライブラリのバージョンをからdependencyの内容をコピーして、pom.xmlに足してあげる。
インメモリで初期化を行います。そのときにRunscriptを使うサンプルです。
URLに直接runscriptを指定していないのは、SQLファイルを置く場所を柔軟にコントロールしたいからです、例えばjar内部とか。
import java.io.IOException;
import java.io.StringReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.commons.io.IOUtils;
import org.h2.tools.RunScript;
public class TestDb {
public static Connection connection() throws SQLException, IOException {
// DB_CLOSE_DELAY=-1をつけることでVM が生存している間接続OK
String url = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;";
Connection connection = DriverManager.getConnection(url);
String[] paths = { "/resources/create.sql", "/resources/populate.sql" };
for (String path : paths) {
// お手軽にIOUtilsを使っている
String cont = IOUtils.toString(
TestDb.class.getResourceAsStream(path), "UTF-8");
RunScript.execute(connection, new StringReader(cont));
}
return connection;
}
}
別メモ
通常のjavaのプロジェクトをmavenプロジェクトに変更して、必要なものがあれば、「pom xxxxxx」で検索すると、
Maven Repository: Search/Browse/Explore
がでてくるので、そこで必要なものライブラリのバージョンをからdependencyの内容をコピーして、pom.xmlに足してあげる。
: