search

Home  >  Q&A  >  body text

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

伊谢尔伦伊谢尔伦2780 days ago812

reply all(1)I'll reply

  • 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);
            }
          }
    

    It’s clearly stated in the code. That note.

    reply
    0
  • Cancelreply