Setup


ScalikeJDBC libraries are available on the Maven central repository.

https://search.maven.org/search?q=org.scalikejdbc


Core Library & Interpolation


Add latest version into your build.sbt or project/Build.scala. Don’t forget JDBC driver and slf4j implementation.

If you’re still using Scala 2.9, you can’t use scalikejdbc-interpolation.

libraryDependencies ++= Seq(
  "org.scalikejdbc" %% "scalikejdbc"       % "4.2.1",
  "com.h2database"  %  "h2"                % "1.4.200",
  "ch.qos.logback"  %  "logback-classic"   % "1.2.12"
)

In your application, just add the following import.

import scalikejdbc._

Testing Support


Using scalikejdbc-test is highly recommended to improve your application.

libraryDependencies ++= Seq(
  "org.scalikejdbc" %% "scalikejdbc"        % "4.2.1",
  "org.scalikejdbc" %% "scalikejdbc-test"   % "4.2.1"   % "test",
  "com.h2database"  %  "h2"                 % "1.4.200",
  "ch.qos.logback"  %  "logback-classic"    % "1.2.12"
)

Usage: /documentation/testing


Typesafe Config Reader


If you use application.conf as settings file, add scalikejdbc-config too.

libraryDependencies ++= Seq(
  "org.scalikejdbc" %% "scalikejdbc"         % "4.2.1",
  "org.scalikejdbc" %% "scalikejdbc-config"  % "4.2.1",
  "com.h2database"  %  "h2"                  % "1.4.200",
  "ch.qos.logback"  %  "logback-classic"     % "1.2.12"
)

Usage: /documentation/configuration


Reverse Engineering


ScalikeJDBC support reverse engineering Scala code from existing database. You need to setup an sbt plugin named scalikejdbc-mapper-generator.

project/plugins.sbt
// Don't forget adding your JDBC driver
libraryDependencies += "org.hsqldb" % "hsqldb" % "2.3.2"

addSbtPlugin("org.scalikejdbc" %% "scalikejdbc-mapper-generator" % "4.2.1")
build.sbt
enablePlugins(ScalikejdbcPlugin)
project/scalikejdbc.properties
# ---
# jdbc settings

jdbc.driver=org.h2.Driver
jdbc.url=jdbc:h2:file:./db/hello
jdbc.username=sa
jdbc.password=
jdbc.schema=

# ---
# source code generator settings

generator.packageName=models
# generator.lineBreak: LF/CRLF
generator.lineBreak=LF
# generator.template: interpolation/queryDsl
generator.template=queryDsl
# generator.testTemplate: specs2unit/specs2acceptance/ScalaTestFlatSpec
generator.testTemplate=specs2unit
generator.encoding=UTF-8
# When you're using Scala 2.11 or higher, you can use case classes for 22+ columns tables
generator.caseClassOnly=true
# Set AutoSession for implicit DBSession parameter's default value
generator.defaultAutoSession=true
# Use autoConstruct macro (default: false)
generator.autoConstruct=false
# joda-time (org.joda.time.DateTime) or JSR-310 (java.time.ZonedDateTime java.time.OffsetDateTime java.time.LocalDateTime)
generator.dateTimeClass=java.time.ZonedDateTime

Usage: /documentation/reverse-engineering


Play Framework Integration


See in detail: /documentation/playframework-support


dbconsole


A simple console to connect database via JDBC.

Mac OS X, Linux
curl -L https://git.io/dbcon | sh
Windows
https://git.io/dbcon.bat

Usage: /documentation/dbconsole


If this webpage has a typo or something wrong, Please report or fix it. How?