• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Looping through PreparedStatement executeBatch for Commit or rollback

 
Ravi Kiran Va
Ranch Hand
Posts: 2234
Eclipse IDE Firefox Browser Redhat
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi ,

Inside a While loop i am inserting data into Database Using PreparedStatement.

int[] result1= pstmt.executeBatch();


How can i check for Failure Transactions , so that i can issue commit or rollback ??

Please share your ideas .

(Is there any other option than manually using for loop and iterating and then )

I have written the below code , but i dont like it , is there any other option ??

for(int i=0;i<result1.length;i++)
{
if(result1>0)
{
connection.commit();
}
else
{
connection.rollback();
}


Please share your ideas .
 
Deepak Pant
Ranch Hand
Posts: 446
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If one of the commands in a batch update fails to execute properly, this method throws a BatchUpdateException, and a JDBC driver may or may not continue to process the remaining commands in the batch. However, the driver's behavior must be consistent with a particular DBMS, either always continuing to process commands or never continuing to process commands. If the driver continues processing after a failure, the array returned by the method BatchUpdateException.getUpdateCounts will contain as many elements as there are commands in the batch, and at least one of the elements will be the following:

A value of EXECUTE_FAILED -- indicates that the command failed to execute successfully and occurs only if a driver continues to process commands after a command fails

Please refer here for more details:
http://java.sun.com/javase/6/docs/api/java/sql/Statement.html#executeBatch%28%29
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic