Thread: JDBC transactions
I wanted to make sure before I attempt it: If I'm using the JDBC driver, I don't have to use explicit transaction calls. That is, I don't have to sent the statements "BEGIN TRANSACTION" and "END". Instead, I have to do con.setAutoCommit(false), and then, the next SQL call will initiate a transaction, which I end by using con.commit() or con.rollback(). That's the documented behavior of JDBC, and what I'm asking is whether (a) I'm correct in my interpretation, and (b) whether the current JDBC driver provided with PostgreSQL 6.2.1 in fact behaves like this. Herouth
On Wed, 7 Jan 1998, Herouth Maoz wrote: > I wanted to make sure before I attempt it: > > If I'm using the JDBC driver, I don't have to use explicit transaction > calls. That is, I don't have to sent the statements "BEGIN TRANSACTION" and > "END". > > Instead, I have to do con.setAutoCommit(false), and then, the next SQL call > will initiate a transaction, which I end by using con.commit() or > con.rollback(). > > That's the documented behavior of JDBC, and what I'm asking is whether (a) > I'm correct in my interpretation, and (b) whether the current JDBC driver > provided with PostgreSQL 6.2.1 in fact behaves like this. Briefly looking at the code, this seems to be the case. The autcomit part of the driver hasn't changed since 6.2, so yes, this is the case. PS: in the current implementation, con.setAutoCommit(false) itself initiates the transaction, not the next sql call. > Herouth -- Peter T Mount petermount@earthling.net or pmount@maidast.demon.co.uk Main Homepage: http://www.demon.co.uk/finder Work Homepage: http://www.maidstone.gov.uk Work EMail: peter@maidstone.gov.uk
At 18:05 +0200 on 7/1/98, Peter T Mount wrote: > PS: in the current implementation, con.setAutoCommit(false) itself > initiates the transaction, not the next sql call. Ah, good of you to reveal this! This would mean that I would have to call it again if I want another transaction to start after I've committed the first. Herouth -- Herouth Maoz, B.Sc. Work: herouth@oumail.openu.ac.il Home: herutma@telem.openu.co.il HOME PAGE: http://www.cs.bgu.ac.il/~herouth/ Internet technical assistant Open University, Telem Project
On Thu, 8 Jan 1998, Herouth Maoz wrote: > At 18:05 +0200 on 7/1/98, Peter T Mount wrote: > > > > PS: in the current implementation, con.setAutoCommit(false) itself > > initiates the transaction, not the next sql call. > > Ah, good of you to reveal this! This would mean that I would have to call > it again if I want another transaction to start after I've committed the > first. Not the case. Once you have setAutoCommit(false), calling commit() automatically begins a new transaction. The same goes for rollback(). -- Peter T Mount petermount@earthling.net or pmount@maidast.demon.co.uk Main Homepage: http://www.demon.co.uk/finder Work Homepage: http://www.maidstone.gov.uk Work EMail: peter@maidstone.gov.uk