使用Play 2.0找不到MySQL驱动程序

时间:2012-07-19 09:15:42

标签: mysql playframework-2.0 scalaquery

我正在尝试将ScalaQuery与play 2一起使用但我仍然得到一个“没有合适的驱动程序...”错误。数据库连接与Anorm / Nina一起正常工作。 这是我的ScalaQuery代码:

object Client extends Table[(Int, String)]("Client") {
val database = Database.forURL("jdbc:mysql://localhost/play2test", driver = "com.mysql.jdbc.Driver" , user="root", password="root")

  def id = column[Int]("id", O NotNull, O AutoInc)

  def name = column[String]("name", O NotNull)

  def * = id ~ name
  def findAll = database.withSession {
    implicit db: Session =>
      (for (t <- this) yield t.id ~ t.name).list
  }
}

我添加了sbt依赖:

"mysql" % "mysql-connector-java" % "5.1.21"

我在application.conf上有这个

db.default.driver=com.mysql.jdbc.Driver
db.default.url="mysql://root:root@127.0.0.1/play2test"
db.default.user=root
db.default.password=root

(我尝试使用forDataSource方法和play的DB.getDataSource(),但我没有得到任何更好的结果)

一个尴尬的事情是我无法导入com.mysql._,所以显然驱动程序甚至没有下载(尽管sbt说它确实如此)。我甚至尝试下载jar并将其手动添加到我的项目下的/ lib文件夹中,但导入仍无效。

我被困住了,我需要一点帮助。 :(

编辑: 我删除了“jdbc:mysql:// localhost / play2test”并重新编写它(在另一个线程上找到了提示),现在我遇到了一个新问题:

[MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '."id","t1"."name" FROM "Client" "t1"' at line 1]

为什么ScalaQuery使用MySQL的双引号以及如何更改它?

Edit2: 问题解决了,我对ScalaQuery的SQL驱动程序进行了错误的导入。

1 个答案:

答案 0 :(得分:0)

我复制/粘贴了一个基于O2的代码,忘了更改SQLDriver导入:

import org.scalaquery.ql.extended.MySQLDriver.Implicit._