2

Play 2でScalaQueryを使用しようとしていますが、「...に適したドライバがありません」というエラーが発生し続けます。データベース接続は、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

(私はplayのDB.getDataSource()と一緒にforDataSourceメソッドを使用しようとしましたが、より良い結果は得られませんでした)

厄介なことの1つは、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ドライバーのインポートが間違っていました。

4

1 に答える 1

0

O2ベースのコードをコピーして貼り付け、SQLDriverのインポートを変更するのを忘れました。

import org.scalaquery.ql.extended.MySQLDriver.Implicit._
于 2012-07-19T10:29:21.170 に答える