makotan _at_ gmail dot com

晴れ、曇り、雨のちScala

夜から寒くなるよ〜
雨が降ったらScala

なんか、Scalaで生JDBC使うとおもしろいよって言ったらはてなにのっけて〜って言われたので・・・

@RunWith(classOf[JUnitRunner])
class DatabaseTest  extends FixtureFunSuite {

  type FixtureParam = String

  def withFixture(test: OneArgTest) {
    try {
      Class.forName("org.h2.Driver");
      val arg = ""
      test(arg)
    }
    finally {

    }
  }

  test("database connection test") { arg =>
  	val conn = DriverManager.getConnection("jdbc:h2:mem:database1", "sa", "")
  	conn.close()
  }

  test("database create table") { arg =>
  	val conn = DriverManager.getConnection("jdbc:h2:mem:database1", "sa", "")
  	val stmt = conn.createStatement()
  	stmt execute
  	"""
  	create table table01 (
  	  id BIGINT
  	  ,name VARCHAR(255)
  	)
  	"""

  	stmt executeUpdate
  	"""
  	insert into table01 (id,name)
  	values(1,'test01')
  	"""

  	val prepare = conn prepareStatement
  	"""
  	insert into table01 (id,name)
  	values(?,?)
  	"""

  	prepare setInt( 1 ,  2 )
  	prepare setString( 2 , "test02" )

  	prepare executeUpdate

  	val select = conn prepareCall
  	"""
  	select * from table01
  	"""

  	val rs = select.executeQuery()

  	rs.next()
  	println( rs.getInt(1) )
  	println( rs.getString(2) )

  	rs.next()
  	println( rs.getInt(1) )
  	println( rs.getString(2) )

  	conn.close()
  }

}

あとはバインディング周りが何とかなれば良いだけのような気がするんだよね〜