搜尋

首頁  >  問答  >  主體

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

伊谢尔伦伊谢尔伦2806 天前833

全部回覆(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
  • 取消回覆