A ferramenta pode ser extendida com vários backends de banco de dados diferentes, e permitir aos desenvolvedores o acesso aos dados armazenados nele como se estivessem diretamente utilizando coleções do Scala. Por exemplo, a criação de uma tabela ficaria assim:
object Coffees extends Table[(String, Int, Double)]("COFFEES") { def name = column[String]("COF_NAME", O.PrimaryKey) def supID = column[Int]("SUP_ID") def price = column[Double]("PRICE") def * = name ~ supID ~ price}
Com a inserção de valores, ficaria dessa forma:
Coffees.insertAll( ("Colombian", 101, 7.99), ("Colombian_Decaf", 101, 8.99), ("French_Roast_Decaf", 49, 9.99))
Consultas podem, então, ser expressas como uma função de escoamento, que podem ser enumeradas assim:
val q = for { c <- Coffees if c.supID === 101 // ^ comparing Rep[Int] to Rep[Int]!} yield (c.name, c.price)println(q.selectStatement)q.foreach { case (n, p) => println(n + ": " + p) }
Com a liberação do Slick 1.0, os desenvolvedores estão entregando a primeira grande atualização para a biblioteca desde que foi lançada em agosto de 2012. A nova versão apresenta melhorias, tais como a capacidade de recuperar imediatamente as chaves primárias que foram geradas de forma automática:
val ids = A.data returning A.id insertAll ("foo", "bar")
Saiba Mais:
[1] Heise Online http://www.h-online.com/open/news/it...a-1802577.html