试着在一个简单的play2应用程序上工作

Bla*_*man 1 playframework-2.0 slick

我正在使用IntelliJ 13,我的build.sbt看起来像:

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
Run Code Online (Sandbox Code Playgroud)

我的模型给出了编译错误:

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)
}
Run Code Online (Sandbox Code Playgroud)

编译错误是:

 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")

                        ^
Run Code Online (Sandbox Code Playgroud)

我首先想要使用tomcat jdbc,但我认为这需要我创建一些花哨的jdbcwrapper所以我现在只是评论出来,因为我只是希望得到一个简单的连接工作.

我的数据库连接如下:

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/play-test"
db.default.user=root
db.default.pass=""
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 6

只用这一个导入替换所有光滑的导入:

import scala.slick.driver.MySQLDriver.simple._
Run Code Online (Sandbox Code Playgroud)

然后你就会有Table,Tag等所有范围.

Slick的样本可能有所帮助:https://github.com/slick/slick-examples/blob/master/src/main/scala/com/typesafe/slick/examples/lifted/FirstExample.scala

文档:http://slick.typesafe.com/doc/2.0.1/gettingstarted.html#quick-introduction

  • 更新了Slick 3:`import slick.driver.MySQLDriver.api._` (4认同)