小编Nar*_*nJr的帖子

Play框架中如何打印出填写好的Anorm SQL语句

如何打印出将要使用 Anorm 运行的 SQL 状态。

例子

SQL(s"SELECT $terms FROM $PERSON_TABLE WHERE name = {name}").on("name" -> "Bill")
Run Code Online (Sandbox Code Playgroud)

打印给了我这个

SimpleSql(anorm.SqlQuery$$anon$1@1197b8ab,Map(name -> ParameterValue(Bill)),<function1>,false)
Run Code Online (Sandbox Code Playgroud)

我想查看将在服务器上运行的确切查询,

SELECT id, name, state FROM person WHERE name = "Bill";
Run Code Online (Sandbox Code Playgroud)

我不想像这样使用插值

s"SELECT $terms FROM $PERSON_TABLE WHERE name = $name"
Run Code Online (Sandbox Code Playgroud)

我需要能够看到所有转义字符以及 (') 中包裹的内容以及 (") 中包裹的内容

使用:

播放 2.4.1-Scala

谢谢,

亚当

scala playframework anorm playframework-2.4

5
推荐指数
1
解决办法
1642
查看次数

播放服务器随机无法建立与Mysql的连接

因此,在过去的几天里,我一直受到这个问题的困扰,我不确定是什么导致它或从哪里开始寻找.我正在使用docker容器(T2.Small)+ RDS(T2.micro)在Amazon Beanstalk上运行Play 2.4.1,Anorm 2.5,MySql 5.6.在向服务器发出API请求时,我遇到了间歇性问题.我的日志文件已满,错误如下.它抱怨与数据库的连接超时但如果我检查RDS它仍然显示所有连接活动.如果我远程进入MySql服务器并运行SHOW processlist我看到所有的连接,他们都说命令:睡眠.有时,如果我让服务器静置几分钟,它会再次开始工作.如果我重新启动Play应用程序,它会立即重新开始工作.我似乎无法可靠地重新创建导致它的任何事件集.

任何关于从哪里开始寻找的建议或提示都将非常感激,因为这让我疯狂.

 [ERROR] from play.core.server.netty.PlayDefaultUpstreamHandler in application-akka.actor.default-dispatcher-186 - Cannot invoke the action
play.api.UnexpectedException: Unexpected exception[SQLTimeoutException: Timeout after 30000ms of waiting for a connection.]
at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:261) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:191) ~[com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
at play.api.GlobalSettings$class.onError(GlobalSettings.scala:179) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
at play.api.DefaultGlobal$.onError(GlobalSettings.scala:212) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:94) [com.typesafe.play.play_2.11-2.4.1.jar:2.4.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:158) [com.typesafe.play.play-netty-server_2.11-2.4.1.jar:2.4.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:155) [com.typesafe.play.play-netty-server_2.11-2.4.1.jar:2.4.1]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) [org.scala-lang.scala-library-2.11.7.jar:na]
at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:216) [org.scala-lang.scala-library-2.11.7.jar:na]
at scala.util.Try$.apply(Try.scala:192) [org.scala-lang.scala-library-2.11.7.jar:na]
at scala.util.Failure.recover(Try.scala:216) [org.scala-lang.scala-library-2.11.7.jar:na]
at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [org.scala-lang.scala-library-2.11.7.jar:na]
at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [org.scala-lang.scala-library-2.11.7.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [org.scala-lang.scala-library-2.11.7.jar:na]
at play.api.libs.iteratee.Execution$trampoline$.executeScheduled(Execution.scala:109) [com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:71) [com.typesafe.play.play-iteratees_2.11-2.4.1.jar:2.4.1]
at …
Run Code Online (Sandbox Code Playgroud)

mysql playframework hikaricp playframework-2.4

1
推荐指数
1
解决办法
607
查看次数