我想使用最新的Slick (3.1.1)来分析遗留的mysql数据库(myisam engine)。
版本:
scalaVersion := "2.11.7"
"com.typesafe.slick" %% "slick" % "3.1.1"
"com.typesafe.slick" %% "slick-codegen" % "3.1.1"
"org.slf4j" % "slf4j-nop" % "1.7.13"
"mysql" % "mysql-connector-java" % "5.1.38"在使用slick.codegen.SourceCodeGenerator从我的数据库生成Tables.scala之后,我编写了一些简单的查询代码:
val query = Users map { _.firstname }
val action = query.result
val future = db.run(action)
future onSuccess {
case result => println("result: " + result)
}
future onFailure {
case t =>
println("Got an error: " + t.getMessage)
println("SQL: " + action.statements.head)
}输出如下所示:
Got an error: 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 '"Users"' at line 1
SQL: select "FirstName" from "Users"那些引号在我看来不对。应该是select FirstName from Users,对吧?
哪里出了问题?
更正:这是我的一个简单的复制和粘贴错误。我忘了换那个
object Tables extends { val profile = slick.driver.H2Driver } with demo.Tables使用
object Tables extends { val profile = slick.driver.MySQLDriver } with demo.Tables抱歉的!
发布于 2015-12-18 11:34:17
如果MySQL在ANSI_QUOTES SQL模式下运行,可以使用双引号转义表名和列名。
有关SQL模式的更多信息,请参见http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html。
https://stackoverflow.com/questions/34354599
复制相似问题