GroovyでSQLiteを使ってみる

2019-03-30Groovy, Java

クライアントアプリやjettyで動かすようなローカルアプリの場合には、軽量で小さなDBが欲しくなる。SQLiteが使えるとかなり便利。

GroovyでSQLiteを使うサンプルを作成してみた。emailテーブルを作成し、データを3レコードセット。

それを出力する例。

sqlite.groovy

#!/usr/bin/env groovy
@GrabConfig(systemClassLoader = true)
@Grab("org.xerial:sqlite-jdbc:3.7.2")
import groovy.sql.*

def dbfile = new File("./sqlite.db")
def url = "jdbc:sqlite:${dbfile.name}"
def driver = "org.sqlite.JDBC"
def gsql = Sql.newInstance(
        url
        , driver
)
if (dbfile.size() == 0) {
    gsql.execute("""
create table mails (
  id integer primary key, subject text,
  body text
)
""")
    3.times { i ->
        gsql.execute("""
insert into mails (id, subject, body)
values
  (
    ${i + 1}, '件名${i + 1}', '本文${i + 1}'
  )
""".toString())
    }
}
gsql.eachRow("""
SELECT
  id,
  subject,
  body
FROM
  mails
ORDER BY
  id
""") { row ->
    println "id:${row.id}, subject:${row.subject}, body:${row.body}"
}

2019-03-30Groovy, Java