搜索

首页  >  问答  >  正文

java - 关闭数据库连接之前为什么要先设置自动提交为true?

伊谢尔伦伊谢尔伦2802 天前822

全部回复(1)我来回复

  • ringa_lee

    ringa_lee2017-04-18 10:08:03

    
        protected void resetAutoCommit() {
            try {
              if (!connection.getAutoCommit()) {
                // MyBatis does not call commit/rollback on a connection if just selects were performed.
                // Some databases start transactions with select statements
                // and they mandate a commit/rollback before closing the connection.
                // A workaround is setting the autocommit to true before closing the connection.
                // Sybase throws an exception here.
                if (log.isDebugEnabled()) {
                  log.debug("Resetting autocommit to true on JDBC Connection [" + connection + "]");
                }
                connection.setAutoCommit(true);
              }
            } catch (SQLException e) {
              log.debug("Error resetting autocommit to true "
                  + "before closing the connection.  Cause: " + e);
            }
          }
    

    代码中已经明确的说明了。那段注释。

    回复
    0
  • 取消回复