Two Laptop Bag
The moose likes JDBC and Relational Databases and the fly likes Transactions! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC and Relational Databases
Bookmark "Transactions!" Watch "Transactions!" New topic


kriti sharma
Ranch Hand

Joined: Feb 16, 2001
Posts: 160
as per jdbc spec 3.0 a transaction for a jdbc driver is a single sql statement. but what if one wants application level transaction, i.e suppose i want:

transaction begin:
select a
select b
update c
update d
delete e
transaction end.

i want to create such transactions which span beyond a single sql statement, i.e are a combination of multiple sql statements. i want to implement such transactions in servlets. i take a connection from a connection pool via DataSource object(on weblogic server). then should i set auto commit to false, carry out the sql statements, and commit. is this the right approach or is it that in weblogic, every single connection from the connection pool forms a single transaction?
Julian Kennedy
Ranch Hand

Joined: Aug 02, 2004
Posts: 823
Hi Kriti,

What you describe is the correct way to perform a mulit-statement transaction in JDBC. I don't know about Weblogic ... perhaps one for the Weblogic forum?

I expect that the issue of how you go about committing would depend on whether your transaction is distributed, e.g. whether you're using full J2EE with container managed persistence and so on.

I'm no expert on J2EE, but if you're just using good ole J2SE under Weblogic then your approach is fine.


unni krishna
Ranch Hand

Joined: Jul 14, 2004
Posts: 39

What you have specified is one way of handling transaction. If you don't need distributed transactions, you can manage with con.setAutoCommit(false),
con.rollback() & con.commit(). Only if you need distributed transactions you should worry about using JTA.

Software Engineer (SCJP)<br />USTechnology, CA
I agree. Here's the link:
subject: Transactions!
It's not a secret anymore!