書き方をすっかり忘れていたのでメモ。
基本ここのfirst exampleを参考に
http://scalikejdbc.org/
build.sbt
name := "SampleScalikejdbc"
version := "1.0"
scalaVersion := "2.12.3"
// Scala 2.10, 2.11, 2.12
libraryDependencies ++= Seq(
"org.scalikejdbc" %% "scalikejdbc" % "3.0.2",
"com.h2database" % "h2" % "1.4.196",
"ch.qos.logback" % "logback-classic" % "1.2.3",
"mysql" % "mysql-connector-java" % "5.1.43"
)
SampleScalikejdbc.scala
import org.joda.time._
import scalikejdbc._
object SampleScalikeJdbc {
def main(args: Array[String]): Unit = {
Class.forName("com.mysql.jdbc.Driver")
ConnectionPool.singleton("jdbc:mysql://ipアドレスかlocalhost/データベース名?characterEncoding=UTF-8", "ユーザー名", "ぱすわーど")
//テーブルの要素に合わせてcase classを作成
case class Completes(id:Int, user_id:Int, order_id:Int, created:DateTime)
//ボイラープレート的な
object Completes extends SQLSyntaxSupport[Completes]{
override val tableName = "completes"
def apply(rs:WrappedResultSet): Completes = new Completes(rs.int("id"), rs.int("user_id"), rs.int("order_id"), rs.jodaDateTime("created"))
}
//こんな感じでcase classに入れれば使いやすい
val list2 = sql"select * from completes".map(Completes(_)).list.apply()
println(list2)
//別にボイラープレートなくてもこんなこともできる
val list3 = sql"select * from orders".map(_.toMap).list.apply()
println(list3)
}