- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Play 中使用 Anorm 编写一个 SQL SELECT...FOR UPDATE,这样我就可以让多个线程与同一个数据库交互,但它引发了一个问题。
代码是:
db.withConnection { implicit connection: Connection =>
SQL"""
start transaction;
select * from push_messages where vendorId=$vendorId for update;
UPDATE push_messages set stageOne=$first, stageTwo=$second, stageThree=$third,
stageFour=$fourth, stageFive=$fifth, highestStage=$highestStage, iOSTotal=$iOSTotal,
androidTotal=$androidTotal, iOSRunningCount=$iOSRunningCount, androidRunningCount=$androidRunningCount,
problem=$newProblem, iOSComplete=$iOSCompleted, androidComplete=$newAndroidComplete,
totalStageThrees=$totalStageThrees, totalStageFours=$totalStageFours, expectedTotals=$expectedTotals,
startTime=$startTime, date=$date, topics=$topics, androidFailures=$androidFailures, iOSFailures=$iOSFailures where vendorId=$vendorId;
commit;
""".execute
}
但是,它似乎不喜欢在 select
语句中使用 .execute
。有没有一种好的方法可以将其分解以执行 select...for update
以便我可以使用 execute()
或 executeUpdate
?
任何帮助都将不胜感激。谢谢。
最佳答案
作为大多数 JDBC 基础库,Anorm 使用 PreparedStatement
来安全地与 DB 交互,所以你不应该将这样的多语句字符串传递给它,而应该只将单个语句传递给每个 SQL
调用。
此外,关于start transaction
,你最好使用JDBC的方式(例如使用Play DB DB.withTransaction { ... }
)。
关于mysql - 选择...使用 Anorm 进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38958556/
object Users { implicit object UserReads extends Reads[User] { def reads(json: JsValue) = JsS
解决方案:我不知道如何返回 Option[User] 的不存在,所以在没有找到用户的情况下,我创建了一个虚拟用户对象并从 Controller 对其进行推理(感觉很糟糕但有效。 ..):来自 Appl
在 Play 框架 2.0 中,我试图使用这样的行解析器从 PostgreSQL 加载一个真正的(即单精度浮点数)类型的列: case class Foo(bar: Float) object Foo
我想在 Scala 中将数据从 SQL server 复制到 vertica,我正在考虑使用 Anorm,但我没有找到任何关于批量插入的文档。如果 Anorm 不支持批量插入,我应该使用什么库? 最佳
我已经使用 Play framework 2.0 大约 6 个月了,我一直想知道为什么他们使用这么多样板代码来解析我的 SQL 查询返回,如下所示: case class Journal_accoun
当我尝试运行时(来自 Play Framework): import play.api.db.DB import anorm._ import org.joda.time.DateTime impor
在 yabe 示例中,有以下查询: def allWithAuthor:List[(Post,User)] = SQL( """
我刚刚开始使用 Anorm 和解析器组合器。似乎有很多样板代码。例如,我有 case class Model( id:Int, field1:String, field2:In
我正在使用游戏!框架与 Anorm 一起访问数据库。我经常看到像下面这样的例子,对象成员被直接注入(inject)到 SQL 语句中。 我的问题是,这些输入是否经过 sanitizer ?大多数示例如
考虑像这样的存储库/DAO 方法,效果很好: def countReports(customerId: Long, createdSince: ZonedDateTime) = DB.withCo
首先,我是 Play 2 Scala 的新手。我正在尝试将我的模型对象与 JSON 进行转换。 根据此博客 http://mandubian.com/2012/10/01/unveiling-play
我发现这个答案可以解决一个字段 -> Inserting multiple values into table with anorm var fields: List[String] = Nil
更新查询返回1,但插入查询返回None。 def que3(params) { DB.withConnection { implicit c => val i=SQL("UPDATE QUE
我正在尝试使用 Anorm(在 play framework 2.3.1 中)对 MySQL 数据库表进行批量插入。我正在构建的应用程序除了需要批量数据插入外,还有一个标准的 Web 前端,我想尝试将
当有记录匹配 WHERE 子句时,这段代码工作正常: val pinfo = SQL("SELECT * FROM tableName WHERE id={id}").on("id" -> "scal
我不想删除并重新插入每一行,所以我使用以下方法尝试将多行与异常一起使用: SQL(""" delete from PERSON_ROLES WHERE
是否可以在 Anorm 中使用带有字符串插值的 LIKE 子句? // e.g. this doesn't work SQL"SELECT * FROM users WHERE last_name L
我有一个可以为空列的表,当查询空列时,它抛出了错误 val row: List[(String,String)] = SQL("select top 10 Spare_Part part,Prici
使用 findBy 如下所示,我可以通过 key 和 value 在 Authentications 表中搜索记录 def findBy(key: String, value: String): An
你如何在 Scala 的游戏之外使用 Anorm?在用于 Play 的 Anorm 文档中,它只是使用以下内容: DB.withConnection { implicit c => val res
我是一名优秀的程序员,十分优秀!