首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slick MSSQL“未能为键默认值创建光滑的数据库配置”

Slick MSSQL“未能为键默认值创建光滑的数据库配置”
EN

Stack Overflow用户
提问于 2016-01-13 04:26:34
回答 1查看 840关注 0票数 2

我在使用Slick连接到我们的MSSQL数据库时遇到了困难。

我知道我必须使用光滑的扩展,并且已经这样做了。这是我们建筑的摘录

代码语言:javascript
复制
lazy val thirdPartyDependencies = Seq(
    ...
    "com.typesafe.slick"    %% "slick-extensions"             % "3.1.0",
    "com.typesafe.play"     %% "play-slick"                   % "1.1.0",
    "com.typesafe.slick"    %% "slick-codegen"                % "3.1.0" % "compile"
)

lazy val allResolvers = Seq(
  "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/",
  "sonatype-releases" at "https://oss.sonatype.org/content/repositories/releases/",
  "Typesafe Releases" at "http://repo.typesafe.com/typesafe/maven-releases/"
)

以下是Slick的application.conf配置

代码语言:javascript
复制
#Slick configuration.
slick.dbs.default.driver=com.typesafe.slick.driver.ms.SQLServerDriver
slick.dbs.default.db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
slick.dbs.default.db.url=${?db.default.url}
slick.dbs.default.db.user=${?sql_user}
slick.dbs.default.db.password=${?sql_password}

我使用SourceCodeGenerator工具构建了表定义,没有问题。下面是连接到数据库的代码:

代码语言:javascript
复制
val dbConfig = DatabaseConfigProvider.get[JdbcProfile](Play.current)

我没有任何编译时问题,但在运行代码时会遇到以下堆栈跟踪:

代码语言:javascript
复制
[error] play.api.db.slick.DefaultSlickApi - Failed to create Slick database config for key default.
slick.SlickException: Error getting instance of Slick driver "com.typesafe.slick.driver.ms.SQLServerDriver"
       at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:65) ~[slick_2.11-3.1.0.jar:na]
       at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.create(SlickApi.scala:89) [play-slick_2.11-1.1.0.jar:1.1.0]
       ...
Caused by: java.lang.InstantiationException: com.typesafe.slick.driver.ms.SQLServerDriver
       at java.lang.Class.newInstance(Class.java:427) ~[na:1.8.0_45]
       at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:63) ~[slick_2.11-3.1.0.jar:na]
       ... 22 common frames omitted
 Caused by: java.lang.NoSuchMethodException: com.typesafe.slick.driver.ms.SQLServerDriver.<init>()
       at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_45]
       at java.lang.Class.newInstance(Class.java:412) ~[na:1.8.0_45]
       ... 23 common frames omitted

我完全没学过。我们有一个商业类型的许可证,所以我想我们应该使用其中提供的一些巧妙的特性。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-13 04:34:58

您的application.conf配置文件中有一个问题。试着在驱动程序名的末尾插入一个尾随的$,告诉Slick将其作为一个对象来引用:

代码语言:javascript
复制
slick.dbs.default.driver = "com.typesafe.slick.driver.ms.SQLServerDriver$"

有关更多信息,请阅读this SO post

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34758404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档