就连接处理而言,我对groovy SQL文档非常困惑。我需要了解最佳实践或如何正确处理底层连接。
假设我有一个像这样的对象。
SqL sql = new Sql(dataSource);
sql.withTransaction {
.....
}
现在我应该关闭连接吗?最后一个块中的sql.close
?或者我把它留在那里。
现在考虑一下:
SqL sql = Sql.newInstance (connection parameters);
sql.withTransaction {...}
现在需要sql.close()
吗?
现在这是另一种变体。
Sql sql //(with any constructor).
Sql.//[do something] without a withTransaciton ...
这次我是否必须自己管理连接?或者我仍然可以在没有sql.close()
的情况下留在那里。
在上述任何一种情况下,我都是在Grails服务中编写我的代码,这可能是也可能不是事务性的。
感谢。
答案 0 :(得分:2)
afaik,所有方法都自己进行连接处理
只有在使用了接收连接的构造函数时才应该处理它
如果您不需要交易并且想要重复使用连接,则使用Sql#cacheConnection(Closure)