LoginSignup
4

More than 5 years have passed since last update.

scalikejdbc + mysqlをお手軽に使う

Last updated at Posted at 2017-08-17

書き方をすっかり忘れていたのでメモ。
基本ここの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)
  }

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4