- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Play 2.0 in Scala with anorm framework提供了两种与数据库交互的方法:
def withConnection[A](name: String)(block: Connection => A): A = {
val connection = new AutoCleanConnection(getConnection(name))
try {
block(connection)
} finally {
connection.close()
}
}
/**
* Execute a block of code, in the scope of a JDBC transaction.
* The connection and all created statements are automatically released.
* The transaction is automatically committed, unless an exception occurs.
*
* @param name The datasource name.
* @param block Code block to execute.
*/
def withTransaction[A](name: String)(block: Connection => A): A = {
withConnection(name) { connection =>
try {
connection.setAutoCommit(false)
val r = block(connection)
connection.commit()
r
} catch {
case e => connection.rollback(); throw e
}
}
}
我现在很清楚,每次调用 withConnection 时都会获取并关闭连接。
为什么这两种方法每次都创建和关闭连接?这不是一个昂贵的过程吗?
最佳答案
em...没有问题,因为我们可以从连接池中检索连接。所以 close() 方法只是将连接返回到池中,并没有真正关闭。
关于sql - 玩Anorm和SQL连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882947/
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
我是一名优秀的程序员,十分优秀!