如何从 play 2.4.6 连接 SQL Server
Posted
技术标签:
【中文标题】如何从 play 2.4.6 连接 SQL Server【英文标题】:How to connect SQL Server from play 2.4.6 【发布时间】:2016-04-27 14:47:14 【问题描述】:我是 Play 框架的新手。 我从 play 2.4.6 连接 sql server 时遇到问题。
文件application.conf
如下
db.default.url="jdbc:jtds:sqlserver://127.0.0.1:1433/DBNAME",
db.default.driver=net.sourceforge.jtds.jdbc.Driver,
db.default.user=sa,
db.default.pass=pass
我在lib
和libexec
文件夹中添加了jtds-1.2.6 jar
。
build.sbt 文件如下。
libraryDependencies ++= Seq(
javaJdbc,
"net.sourceforge.jtds" % "jtds" % "1.2.6",
cache,
javaWs
)
fork in run := true
但是当我在http://localhost:9000/ 访问浏览器时出现以下错误
无法连接到数据库[默认]
请帮帮我。
以下是详细的例外:
! @700ahko28 - 内部服务器错误,用于 (GET) [/] -> 应用 -
play.api.Configuration$$anon$1: 配置错误[无法连接数据库[默认]] 在 play.api.Configuration$.configError(Configuration.scala:154) 在 play.api.Configuration.reportError(Configuration.scala:806) 在 play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:48) 在 play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:42) 在 scala.collection.immutable.List.foreach(List.scala:381) 在 play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42) 在 play.api.db.DBApiProvider.get$lzycompute(DBModule.scala:72) 在 play.api.db.DBApiProvider.get(DBModule.scala:62) 在 play.api.db.DBApiProvider.get(DBModule.scala:58) 在 com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 原因:play.api.Configuration$$anon$1:配置错误[池初始化期间异常:HikariPool-0 - 连接不可用,请求在30001ms后超时。]
【问题讨论】:
检查完整的堆栈跟踪 我觉得application.conf中每一行末尾的逗号太多了。 【参考方案1】:我在 IntelliJ 2016 中创建的新 Play!2 应用程序遇到了类似的问题。我从访问同一开发服务器的现有(旧)应用程序复制了配置,并且正在运行。但是当我在新项目中运行它时,它不再起作用并产生了非常相似的堆栈跟踪。
经过多次谷歌搜索和多种配置变化后,我发现了这个链接:https://github.com/brettwooldridge/HikariCP/issues/497。当我尝试添加以下内容时,他的 application.config 突然一切正常:
db.default.hikaricp.connectionTestQuery="SELECT 1"
【讨论】:
【参考方案2】:要使用的正确属性是username
而不是user
和password
而不是pass
。
属性为here
此外,您的 application.conf 文件中不需要逗号。一旦您在libraryDependencies
中提到了jtds
,您就不需要手动将它们放入lib 或其他地方。 SBT 会拉取它们并将它们放入类路径中。
【讨论】:
我按照你说的完成了所有设置,但是我得到了错误=> 内部服务器错误,对于 (GET) [/] -> play.api.Configuration$$anon$1: 配置错误[无法连接到数据库 [默认]] 它无法连接到数据库,请检查您的所有属性,如 url、用户名和密码.. 区分大小写。 它不工作。一切正常。我正在使用播放 2.5.3 版本。这个版本对这个版本好吗?我做错了吗?错误是 => ! @700aggpoj - 内部服务器错误,用于 (GET) [/] -> play.api.Configuration$$anon$1:配置错误[无法连接到数据库 [默认]] com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory .java:81) 您能提供整个异常跟踪吗?和你修改的 application.conf 您是否使用任何 sql 客户端(如 squirresql)进行了测试。另外,请尝试使用localhost
而不是 127.0.0.1
。我认为这是一个数据库设置/连接问题,而不是 Play 问题。以上是关于如何从 play 2.4.6 连接 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章
如何计算 SQL 中两个 SELECT 的差异(Access、JetSQL)