I have recently been playing with the sqlite4java library. I think I have it pretty much figured out. The only think that bothers me is that I do not know how to switch off the auto-commit using this library. Can anyone please help? A code example would be much appreciated.
Thanks in advance, Boro
To disable autocommit mode explicitly, use the following statement: SET autocommit=0; After disabling autocommit mode by setting the autocommit variable to zero, changes to transaction-safe tables (such as those for InnoDB or NDB ) are not made permanent immediately.
However, you can disable auto-commit mode with the setAutoCommit() method of the connection object (either java. sql. Conection or oracle.
To tell if AUTOCOMMIT is on or off, issue the set command: $ \set ... AUTOCOMMIT = 'off' ...
Jefromi and king_nak are correct - you just need to issue SQL statements that begin and end a transaction.
SQLiteConnection con = new SQLiteConnection();
con.exec("BEGIN");
// do transaction work - auto-commit is disabled
con.exec("COMMIT");
// auto-commit is enabled again
Edit: I confused sqlite4java with the sqliteJDBC package. So the below code will not help. I'm keeping it for reference nevertheless.
After you obtained the connection, just call setAutoCommit(false)
java.sql.Connection con = DriverManager.getConnection("jdbc:sqlite:/your/db/file", "user", "password"); con.setAutoCommit(false);
Referring to SQLite's C interface description:
The sqlite3_get_autocommit() interface returns non-zero or zero if the given database connection is or is not in autocommit mode, respectively. Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK.
So you disable auto-commit by a BEGIN TRANSACTION
statement. No separate API function is present for this
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With