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 reduce
performance. In addition, a set of statements may have dependencies
such that previous statements should be undone if a succeeding
statement fails. This is why the JDBC API provides the
Connection.setAutoCommit()
method. You can turn off the
default autocommit behavior by calling this method with an argument of
false. All statements executed afterward will not take effect until
you 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 transaction
when one of its constituent statements fails.