プログラマメモ2 - programmer no memo2

インメモリで初期化を行います。そのときにRunscriptを使うサンプルです。 - H2 2014/08/30

H2です。
インメモリで初期化を行います。そのときに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に足してあげる。

: