Question:
Does “Connection.setAutoCommit(false)” mean “begin a transaction?”
Answer:
By default, JDBC connections start in autocommit mode. This means that every executed statement is treated as a separate transaction. A transaction is simply an operation that is irreversibly completed.
There are occasions where this default behavior is undesirable.Having every statement commited to the database can reduceperformance. In addition, a set of statements may have dependenciessuch that previous statements should be undone if a succeedingstatement fails. This is why the JDBC API provides the
Connection.setAutoCommit()
method. You can turn off thedefault autocommit behavior by calling this method with an argument offalse. All statements executed afterward will not take effect untilyou call
commit()
Therefore, the first call of
setAutoCommit(false)
and each call of
commit()
implicitly mark the start of a transaction.Transactions can be undone before they are committed by calling
rollback()
You will typically rollback a transactionwhen one of its constituent statements fails.