wood burning stoves 2.0*
The moose likes JDBC and the fly likes why my rollback doesn't work? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "why my rollback doesn Watch "why my rollback doesn New topic
Author

why my rollback doesn't work?

wei liu
Ranch Hand

Joined: Nov 19, 2008
Posts: 35

hi everyone, I wrote a piece of code to test the rollback function.However, it doesn't work, can some one scanning through my code and tell me what the problem is .



Thanks


SCJP 1.6 in 2010
SCWCD5 in 2011
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41604
    
  55
What does "it doesn't work" mean? What exactly happens if you run the code?


Ping & DNS - my free Android networking tools app
wei liu
Ranch Hand

Joined: Nov 19, 2008
Posts: 35

Ulf Dittmer wrote:What does "it doesn't work" mean? What exactly happens if you run the code?


the entry"123456" and "root" have been inserted into the database which are not supposed to be inserted since the rollback was called!
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

Which database are you using?


JavaRanch FAQ HowToAskQuestionsOnJavaRanch
wei liu
Ranch Hand

Joined: Nov 19, 2008
Posts: 35

Paul Sturrock wrote:Which database are you using?


I am using Mysql
Arpit Panwar
Greenhorn

Joined: Jul 16, 2009
Posts: 12
Make sure you change the Storage engine of your table to InnoDB
I think the default engine MyISAM doesnt support Transactions
Try it and let me know


SCJP 75%
wei liu
Ranch Hand

Joined: Nov 19, 2008
Posts: 35

Arpit Panwar wrote:Make sure you change the Storage engine of your table to InnoDB
I think the default engine MyISAM doesnt support Transactions
Try it and let me know


Thanks Arpit, It works after change the engine from MyISAM to InnoDB.

Thanks for your help.
vidhya Narayanan
Greenhorn

Joined: Apr 08, 2010
Posts: 6
wei liu wrote:
Arpit Panwar wrote:Make sure you change the Storage engine of your table to InnoDB
I think the default engine MyISAM doesnt support Transactions
Try it and let me know


Thanks Arpit, It works after change the engine from MyISAM to InnoDB.

Thanks for your help.
Hi .. i too have the same problem. here in this case there is only one sql stmt... i have a set of updates and deletes .. and if i use the roolbak will it work?... thanks in advance
Jhakda Velu
Ranch Hand

Joined: Feb 26, 2008
Posts: 166
Yes, use the same connection object for all and commit after all are successful, rollback otherwise.

Jhakda

If I become filthy rich, I'll sponsor research for painless dental treatment at Harvard Medical School. Thats why,I'm learning Java.I have 32 teeth, 22 are man made.
vidhya Narayanan
Greenhorn

Joined: Apr 08, 2010
Posts: 6
Thank u. I have another doubt o use the same connection for all the statements.. should i commit each after each stmt or i can commit at the end .
And can i use commit after the rollback?
Jhakda Velu
Ranch Hand

Joined: Feb 26, 2008
Posts: 166
Since you said you have more than 1 sql, i presume you want to do an atomic transaction. We normally commit after successful completion of all transactions, roll back otherwise.

Jhakda
vidhya Narayanan
Greenhorn

Joined: Apr 08, 2010
Posts: 6
Jhakda Velu wrote:Since you said you have more than 1 sql, i presume you want to do an atomic transaction. We normally commit after successful completion of all transactions, roll back otherwise.

Jhakda
can i use rollback for DDL ... i think we cant... but wanted to know whether ther is any other method for doing it
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

vidhya Narayanan wrote:
Jhakda Velu wrote:Since you said you have more than 1 sql, i presume you want to do an atomic transaction. We normally commit after successful completion of all transactions, roll back otherwise.

Jhakda
can i use rollback for DDL ... i think we cant... but wanted to know whether ther is any other method for doing it


DDL is usually not transactional, so no.
Arpit Panwar
Greenhorn

Joined: Jul 16, 2009
Posts: 12
wei liu wrote:
Arpit Panwar wrote:Make sure you change the Storage engine of your table to InnoDB
I think the default engine MyISAM doesnt support Transactions
Try it and let me know


Thanks Arpit, It works after change the engine from MyISAM to InnoDB.

Thanks for your help.

Pleased to help
vidhya Narayanan
Greenhorn

Joined: Apr 08, 2010
Posts: 6
Paul Sturrock wrote:
vidhya Narayanan wrote:
Jhakda Velu wrote:Since you said you have more than 1 sql, i presume you want to do an atomic transaction. We normally commit after successful completion of all transactions, roll back otherwise.

Jhakda
can i use rollback for DDL ... i think we cant... but wanted to know whether ther is any other method for doing it


DDL is usually not transactional, so no.


I have a method to perform a rollback on the ddl statements. A method with all alter commands. This works fine if there is any error in the end of the actual code. If the actual code fails in-between the rollback method is called but the issue is there is an error while the alter stmts execute that were not created at all. Can anyone help me.
 
 
subject: why my rollback doesn't work?