Groovy SQL DataSource连接处理,withTransaction

时间:2011-02-12 02:29:20

标签: grails groovy connection datasource

就连接处理而言,我对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服务中编写我的代码,这可能是也可能不是事务性的。

感谢。

1 个答案:

答案 0 :(得分:2)

afaik,所有方法都自己进行连接处理 只有在使用了接收连接的构造函数时才应该处理它 如果您不需要交易并且想要重复使用连接,则使用Sql#cacheConnection(Closure)