groovy - 为什么使用此代码块关闭连接

时间:2015-09-29 04:26:38

标签: oracle groovy

    DbService dbService = new DbService(DB_NAME);
    GroovyRowResult row = null;
    try {
        MyClass myObj  = new MyClass(dbService.singleRow(query));
        return myObj;
    } finally {
        dbService.cleanup();
    }
import groovy.sql.Sql;
public class DbService {
private Sql sql;
public void cleanup() {
    if (null != sql) {
        sql.close();
    }
}
  

2015年9月28日下午9:19:15 groovy.sql.Sql $ AbstractQueryCommand执行   警告:执行失败:从mytable中选择*,其中id = 9和   rownum< = 1因为:已关闭连接   java.sql.SQLRecoverableException:已关闭的连接   oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:3908)     在groovy.sql.Sql.createStatement(Sql.java:4288)at   groovy.sql.Sql.access $ 800(Sql.java:228)at   groovy.sql.Sql $ CreateStatementCommand.execute(Sql.java:4525)at   groovy.sql.Sql.getAbstractStatement(Sql.java:4342)at   groovy.sql.Sql.getStatement(Sql.java:4349)at   groovy.sql.Sql.access $ 1000(Sql.java:228)at   groovy.sql.Sql $ QueryCommand.runQuery(Sql.java:4637)at   groovy.sql.Sql $ AbstractQueryCommand.execute(Sql.java:4553)at   groovy.sql.Sql.rows(Sql.java:1699)at   groovy.sql.Sql.rows(Sql.java:1617)at   com.mycompany.qa.database.DbService.singleRow(DbService.java:146)

1 个答案:

答案 0 :(得分:0)

如评论中所述。文档是正确的。这更多地与我未发布的导致它的其他代码有关。