From 76ee13c8818bb386ba94a5c02037deb0ed7046c9 Mon Sep 17 00:00:00 2001 From: krrrr38 Date: Sun, 9 Aug 2015 21:42:53 +0900 Subject: Update build for 3.0.1 --- README.md | 2 +- project/Build.scala | 16 +++++++++------- src/main/scala/Example.scala | 7 ++++--- src/main/sql/create.sql | 4 ++-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index cbe7707..007cf83 100755 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -This code example shows how to setup sbt to use Slick's preconfigued code-generator for working with an existing database schema. `project/Build.scala` enables automatically as well as manually triggered code-generation. `src/main/scala/Example.scala` uses the generated code. The code is generated into file `target/scala-2.10/src_managed/slick/demo/Tables.scala`, which can be changed in the sbt script. It is usally wise to keep the generated Slick code under version control. +This code example shows how to setup sbt to use Slick's preconfigued code-generator for working with an existing database schema. `project/Build.scala` enables automatically as well as manually triggered code-generation. `src/main/scala/Example.scala` uses the generated code. The code is generated into file `target/scala-2.11/src_managed/slick/demo/Tables.scala`, which can be changed in the sbt script. It is usally wise to keep the generated Slick code under version control. Use `sbt run` to run the demo. diff --git a/project/Build.scala b/project/Build.scala index a7d27d9..17f055b 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -7,16 +7,18 @@ import Tests._ * database before compiling the projects code. */ object myBuild extends Build { + val slickVersion = "3.0.1" + lazy val mainProject = Project( id="main", base=file("."), settings = Project.defaultSettings ++ Seq( - scalaVersion := "2.10.3", + scalaVersion := "2.11.6", libraryDependencies ++= List( - "com.typesafe.slick" %% "slick" % "2.1.0", - "com.typesafe.slick" %% "slick-codegen" % "2.1.0-RC3", - "org.slf4j" % "slf4j-nop" % "1.6.4", - "com.h2database" % "h2" % "1.3.170" + "com.typesafe.slick" %% "slick" % slickVersion, + "com.typesafe.slick" %% "slick-codegen" % slickVersion, + "org.slf4j" % "slf4j-nop" % "1.7.12", + "com.h2database" % "h2" % "1.4.187" ), slick <<= slickCodeGenTask, // register manual sbt command sourceGenerators in Compile <+= slickCodeGenTask // register automatic code generation on every compile, remove for only manual use @@ -29,9 +31,9 @@ object myBuild extends Build { val outputDir = (dir / "slick").getPath // place generated files in sbt's managed sources folder val url = "jdbc:h2:mem:test;INIT=runscript from 'src/main/sql/create.sql'" // connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run val jdbcDriver = "org.h2.Driver" - val slickDriver = "scala.slick.driver.H2Driver" + val slickDriver = "slick.driver.H2Driver" val pkg = "demo" - toError(r.run("scala.slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg), s.log)) + toError(r.run("slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg), s.log)) val fname = outputDir + "/demo/Tables.scala" Seq(file(fname)) } diff --git a/src/main/scala/Example.scala b/src/main/scala/Example.scala index ffa964b..3eaf9d3 100644 --- a/src/main/scala/Example.scala +++ b/src/main/scala/Example.scala @@ -2,7 +2,8 @@ object Tables extends{ // or just use object demo.Tables, which is hard-wired to val profile = scala.slick.driver.H2Driver } with demo.Tables import Tables._ -import Tables.profile.simple._ +import Tables.profile.api._ +import scala.concurrent.ExecutionContext.Implicits.global object Example extends App { // connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run @@ -13,8 +14,8 @@ object Example extends App { val q = Companies.join(Computers).on(_.id === _.manufacturerId) .map{ case (co,cp) => (co.name, cp.name) } - db.withTransaction { implicit session => - println( q.run.groupBy{ case (co,cp) => co } + db.run(q.result).foreach { result => + println(result.groupBy{ case (co,cp) => co } .mapValues(_.map{ case (co,cp) => cp }) .mkString("\n") ) diff --git a/src/main/sql/create.sql b/src/main/sql/create.sql index 27d5034..22f290e 100644 --- a/src/main/sql/create.sql +++ b/src/main/sql/create.sql @@ -1,5 +1,5 @@ -create table "COMPUTERS" ("ID" INTEGER NOT NULL,"NAME" VARCHAR NOT NULL,"MANUFACTURER_ID" INTEGER NOT NULL); -create table "COMPANIES" ("ID" INTEGER NOT NULL,"NAME" VARCHAR NOT NULL); +create table IF NOT EXISTS "COMPUTERS" ("ID" INTEGER NOT NULL,"NAME" VARCHAR NOT NULL,"MANUFACTURER_ID" INTEGER NOT NULL); +create table IF NOT EXISTS "COMPANIES" ("ID" INTEGER NOT NULL,"NAME" VARCHAR NOT NULL); insert into "COMPANIES" values (1,'Apple Inc.'); -- cgit v1.2.3