HSQLDBを使ってみた

色々と試行錯誤しましたが最終的なサンプルとして。

実行環境は相変わらずWindowsですが、パスは絶対パスで指定する場合は // から始めないといけないようでした。
あと、
sql.execute("COMMIT;")
sql.execute("SHUTDOWN;")
は必須みたいで忘れるとそれまでの作業が無かった事になるので注意が必要なようです。
途中例外が発生した場合はロックされたままになるので、SHUTDOWNをちゃんとするようにしたほうが良さそう。

@Grab(group='org.hsqldb', module='hsqldb', version='2.2.4')
@GrabConfig(systemClassLoader=true)
import groovy.sql.Sql

driver = 'org.hsqldb.jdbcDriver'
path   = '//E:/TestDB'

sql = Sql.newInstance("jdbc:hsqldb:file:$path", "", "", "$driver")
sql.execute("DROP TABLE TestTable IF EXISTS;")
sql.execute("CREATE TABLE TestTable (ID INT NOT NULL, Name VARCHAR(30));")
sql.execute("INSERT INTO TestTable(ID, Name) VALUES(1, 'Test1');")
sql.execute("INSERT INTO TestTable(ID, Name) VALUES(2, 'Test2');")
sql.execute("INSERT INTO TestTable(ID, Name) VALUES(3, 'Test3');")
sql.execute("DELETE FROM TestTable Where ID = 3;")
sql.execute("COMMIT;")

sql.eachRow("SELECT * FROM TestTable") {
    println "$it.id:$it.name"
}

sql.execute("SHUTDOWN;")

LibreOfficeのBaseで扱えるようにしたかったけど、それが出来なかったので宿題。