Autocommit behavior The JDBC specification requires that, by default, a COMMIT is performed after each data modification statement. Currently, the client-side JDBC behavior is to commit (autocommit is true) and the server-side behavior is to not commit (autocommit is false). To obtain the same behavior in both client-side and server-side applications, you can use a statement such as the following:
con.setAutoCommit( false ); |
In this statement, con is the current connection object. You could also set autocommit to true.
Connection defaults From server-side JDBC, only the first call to getConnection( "jdbc:default:connection" ) creates a new connection with the default values. Subsequent calls return a wrapper of the current connection with all connection
properties unchanged. If you set autocommit to false in your initial connection, any subsequent getConnection calls within
the same Java code return a connection with autocommit set to false.
You may want to ensure that closing a connection restores the connection properties to their default values, so that subsequent connections are obtained with standard JDBC values. The following code achieves this:
Connection con =
DriverManager.getConnection("jdbc:default:connection");
boolean oldAutoCommit = con.getAutoCommit();
try {
// main body of code here
}
finally {
con.setAutoCommit( oldAutoCommit );
} |
This discussion applies not only to autocommit, but also to other connection properties such as transaction isolation level and read-only mode.
For more information about the getTransactionIsolation, setTransactionIsolation, and isReadOnly methods, see documentation on the java.sql.Connection interface.
| Send feedback about this page via email or DocCommentXchange | Copyright © 2008, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.0 |