If I create a preparedstatement using a JDBC connection which has "autocommit off", do I need to call commit() to make the transaction permanent or only the prepare call is enough? Note that I only want to prepare a statement and keep it for later execution.
Many thanks!
The answer is: yes you have to call commit.
The "prepare" step does not do anything that is relevant for transaction handling on the server.
You have to call executeUpdate()
(or execute()
) to start a transaction (assuming the used SQL does in fact start a transaction)
Using a PreparedStatement without auto-commit requires the following steps:
executeUpdate()
(or execute()
depending on the type of statement)Connection.commit()
To make things clearer: calling prepareStatement()
does not require a commit()
.