Learning about Slick
Let's explore the behavior of the Slick framework through code examples to see how we can enhance and replace more traditional ORM solutions.
The first example we can study is part of the test-patterns-scala
activator template project that we have analyzed in Chapter 4, Testing Tools. The scalatest/Test012.scala
file found inside the project exhibits a typical usage of Slick as follows:
package scalatest import org.scalatest._ import scala.slick.driver.H2Driver.simple._ import Database.threadLocalSession object Contacts extends Table[(Long, String)]("CONTACTS") { def id = column[Long]("CONTACT_ID", O.PrimaryKey) def name = column[String]("CONTACT_NAME") def gender = column[String]("GENDER") def * = id ~ name } class Test12 extends FunSuite { val dbUrl = "jdbc:h2:mem:contacts" val dbDriver = "org.h2.Driver" test("Slick, H2, embedded") { Database.forURL(dbUrl, driver = dbDriver) withSession { Contacts.ddl.create Contacts.insertAll( ...