groovy.sql.Sql.firstRow执行后关闭连接?

时间:2016-02-23 21:03:16

标签: grails groovy

在MyService中,我有以下内容:

import groovy.sql.Sql

class MyService {
  Sql groovySql

  def serviceMethod(){
    groovySql.firstRow("some query.....")
  }
}

在resources.groovy groovySql中注入如下:

groovySql(groovy.sql.Sql, ref('dataSource'))

这是Grails 2.4.5应用程序。现在,问题是当serviceMethod被调用时,连接是否自动关闭?

1 个答案:

答案 0 :(得分:3)

Sql中的每个方法都会在必要时创建和释放资源。

  

在幕后,门面隐藏了与获取相关的细节   连接,构造和配置语句,与之交互   连接,关闭资源和记录错误。

如果您使用Sql创建DataSource,则每次都会获得一个新连接,并在操作结束时关闭它。

  

如果我们使用DataSource并且我们没有启用语句缓存,   然后严格来说,最后的close()方法不是必需的 - 如   所有连接处理都是代表我们透明地执行的;   然而,将它放在那里并没有什么坏处,因为它将无声地返回   在那种情况下。