带有Slick 2.0.1和Playframework 2.2.2的MS SQL配置

带有Slick 2.0.1和Playframework 2.2.2的MS SQL配置,sql,sql-server,playframework,slick,slick-2.0,Sql,Sql Server,Playframework,Slick,Slick 2.0,当我尝试使用新的专有MS SQL驱动程序时,我得到一个异常,它归结为驱动程序类的ClassNotFound 我包括光滑和光滑扩展: "com.typesafe.slick" %% "slick" % "2.0.1", "com.typesafe.slick" %% "slick-extensions" % "2.0.1" 示例用法: import com.typesafe.slick.driver.ms.SQLServerDriver.simple._ Database.forURL(url

当我尝试使用新的专有MS SQL驱动程序时,我得到一个异常,它归结为驱动程序类的ClassNotFound

我包括光滑和光滑扩展:

"com.typesafe.slick" %% "slick" % "2.0.1",
"com.typesafe.slick" %% "slick-extensions" % "2.0.1"
示例用法:

import com.typesafe.slick.driver.ms.SQLServerDriver.simple._

Database.forURL(url="jdbc:sqlserver://hostname:1433;databaseName=thedb1", driver = "com.typesafe.slick.driver.ms.SQLServerDriver", user="user", password="password" ) withSession { ...
例外情况:


最终,为com.typesafe.slick.driver.ms.SQLServerDriver找到ClassNotFound

我遇到了同样的问题,并通过在application.conf文件中定义以下几行来解决它(感谢play slick贡献者的帮助):

或者,您可以使用sourceforge中的jTDS驱动程序,如问题注释中所列

db.default.slickdriver=com.typesafe.slick.driver.ms.SQLServerDriver
db.default.driver=net.sourceforge.jtds.jdbc.Driver
最后我做了第一个选项,这意味着下载非托管依赖项
sqljdbc4.jar
(可用)并将其放在
{play app root}/lib
目录中。
由于jTDS驱动程序作为build.sbt的库依赖项提供,我建议首先尝试使用它。

似乎是答案。要在Playframework 2.2.x中将Slick 2.0连接到Microsoft SQL Server,请使用play Slick>=0.6.0()和来自Microsoft的JDBC SQL驱动程序(com.Microsoft.sqlserver.JDBC.SQLServerDriver)。play slick有一个示例应用程序:这个问题涉及sqlserver使用的正确驱动程序:显然驱动程序配置需要同时指定MS JDBC驱动程序和slick扩展中的驱动程序?db.default.flickdriver=com.typesafe.slick.driver.ms.SQLServerDriver db.default.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver事实证明,您也可以使用开源jTDS驱动程序。(通过将db.default.driver设置为net.sourceforge…并将db.default.slickdriver设置为Slick驱动程序)次要添加:确保使用play.api.db.Slick.db而不是play.api.db.db,以及方便类DBAction,而不是访问数据库的任何控制器方法中的Action。如果在游戏之外执行此操作,正确的解决方案是什么?我只是拉了个平滑的扩展。
db.default.slickdriver=com.typesafe.slick.driver.ms.SQLServerDriver
db.default.driver=net.sourceforge.jtds.jdbc.Driver