Win a copy of Machine Learning Systems: Designs that scale this week in the Scala forum
or Xamarin in Action: Creating native cross-platform mobile apps in the Android forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

executeBatch  RSS feed

 
ranger
Sheriff
Posts: 17314
11
IntelliJ IDE Mac Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Has anyone done batch sql statements?
I have a bunch of insert statements that will make up an order. I want all the statements to run as one unit, just like a batch, and if any of them fails, it rollsback.
So I was wondering that if setAutoCommit(false) is called on a connection, then run executeBatch on the statement object, which will ahve all the insert statements there. Then check to see if all executed, and if not rollback, otherwise commit.
Is this the way to go, or is there a better way that anyone knows of?
Thanks
Mark
 
Mark Spritzler
ranger
Sheriff
Posts: 17314
11
IntelliJ IDE Mac Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well looking at Sun press's JDBC book. I found that batch is the way I want to go, I can get transactions in it, and it returns an array of ints if it is completely successful, and throws a BatchUpdateException if any one of the statements fail.
thanks
Mark
 
Ranch Hand
Posts: 336
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you are using Oracle, then you can control the number of rows when to do a commit.
You can either do it at the connection level:
((OracleConnection) conn).setDefaultExecuteBatch(n);
or at the PreparedStatement level:
((OraclePreparedStatement) pstmt).setExecuteBatch(n)
 
Let me tell you a story about a man named Jed. He made this tiny ad:
Rocket Oven Kickstarter - from the trailboss
https://coderanch.com/t/695773/Rocket-Oven-Kickstarter-trailboss
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!