File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes EJB and other Java EE Technologies and the fly likes Transaction management Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "Transaction management" Watch "Transaction management" New topic

Transaction management

lakshmi pokala

Joined: Mar 04, 2006
Posts: 3
How to manage transactions without EJBs in a plain java class?

Thanks You.
Pratheep Nair

Joined: Sep 20, 2005
Posts: 14
Every time you execute a SQL statement in JDBC, by default JDBC provides a transaction. However most of the time this default behavior is not sufficient and it is your responsibility to define the transactional boundaries.

The default behavior, where each statement is contained within its own transaction, is controlled by the connection's autocommit mode. When autocommit is enabled, each change is committed to the database automatically. When you disable autocommit, you become responsible for defining the start and end of a transaction which lets you determine whether to commit or rollback the entire transaction. To disable a connection's auto-commit mode, call the setAutoCommit() method, which accepts a single Boolean parameter.

For e.g:

sql1 = "UPDATE" + tablename +
" SETBALANCE = "+ balance +
" WHEREACCTNUM = "+ accountnum;
tablename=tableNames [totype];
sql2 = "UPDATE " + tablename+
amount + "WHEREACCTNUM = " +

When you call commit(), the current transaction ends and, if possible, all changes made prior to the call are saved. However, if the database is unable to save any one of the changes, then none of them are saved.

You can wrap the execution inside a try-catch block and call rollback on the connection whenever an exception happens:

execute (sql1);
execute (sql2)

These are just simple cases. When you are dealing with mutiple users trying to access the database at the same time (most real world scenarios) you have to consider lot of other transaction isolation levels.

EJBs is not the only way to implement transactions. Even Spring framework supports transactions.
I agree. Here's the link:
subject: Transaction management
It's not a secret anymore!