/ / Versuch, an einer einfachen play2-App zu arbeiten - playframework-2.0, slick

Der Versuch, an einer einfachen play2-App zu arbeiten - playframework-2.0, slick

Ich benutze IntelliJ 13, mein Build.sbt sieht so aus:

name := "hello"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
//"org.apache.tomcat" %% "tomcat-jdbc" % "8.0.5",
"mysql" % "mysql-connector-java" % "5.1.30",
"com.typesafe.slick" %% "slick" % "2.0.1"
)

play.Project.playScalaSettings

Mein Modell gibt Kompilierungsfehler:

package models

import java.sql.Date
import scala.slick.model.Table
import scala.slick.lifted.Tag
import scala.slick.direct.AnnotationMapper.column
import scala.slick.driver.JdbcProfile
import scala.slick.driver.MySQLDriver._

//class Actions(tag: Tag) extends Table[(Int, String, String, String, Int, Int, Int, Int, Date, Date)](tag, "actions") {
class Actions(tag: Tag) extends Table[(Int, String, String, Date, Date)](tag, "actions") {
def id = column[Int]("id", O.PrimaryKey)
def name = column[String]("name")
def description = column[String]("description")

def createdAt = column[Date]("created_at")
def updatedAt = column[Date]("updated_at")

def * = (id, name, description, createdAt, updatedAt)
}

Die Kompilierfehler sind:

 Error:(10, 33) scala.slick.model.Table does not take type parameters
class Actions(tag: Tag) extends Table[(Int, String, String, Date, Date)](tag, "actions") {
^
Error:(10, 14) too many arguments for constructor Object: ()Object
class Actions(tag: Tag) extends Table[(Int, String, String, Date, Date)](tag, "actions") {
^
Error:(11, 18) object column does not take type parameters.
def id = column[Int]("id", O.PrimaryKey)
^
Error:(12, 20) object column does not take type parameters.
def name = column[String]("name")
^
Error:(13, 27) object column does not take type parameters.
def description = column[String]("description")
^
Error:(15, 25) object column does not take type parameters.
def createdAt = column[Date]("created_at")
^
Error:(16, 25) object column does not take type parameters.
def updatedAt = column[Date]("updated_at")

^

Ich wollte zuerst Tomcat jdbc verwenden, aber ich denke, das erfordert, dass ich einige schicke jdbcwrapper erstelle, also habe ich das gerade erst kommentiert, da ich nur eine einfache Verbindung zum Laufen bringen möchte.

Meine Db-Verbindung sieht folgendermaßen aus:

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/play-test"
db.default.user=root
db.default.pass=""

Antworten:

6 für die Antwort № 1

Ersetzen alle Ihrer Slick-Importe mit nur diesem einen Import:

import scala.slick.driver.MySQLDriver.simple._

Dann wirst du haben Table, Tagusw. alles im Umfang.

Slicks Samples könnten helfen: https://github.com/slick/slick-examples/blob/master/src/main/scala/com/typesafe/slick/examples/lifted/FirstExample.scala

Und die Dokumentation: http://slick.typesafe.com/doc/2.0.1/gettingstarted.html#quick-introduction