Thread: Strange executing batch

Strange executing batch

From
Ilya Bulatov
Date:
Hi , pgsql-jdbc.

 How jdbc driver works with batch in one transaction all added
 statement  or  each statement in individual transaction?

Class.forName("org.postgresql.Driver");

Connection c = DriverManager.getConnection("jdbc:postgresql:....");

PreparedStatement p = c.prepareStatement("insert into test(test) values(?)");
c.setAutoCommit(false);
for (int i = 0; i < 1000; i++) {
 p.setString(1, "test"+i);
 p.addBatch();
}

p.executeBatch();

If at executing executeBatch() on 500 statement error is arised ,that
for some reason first 499 statement are  committed.

--
Truly yours,
 Ilya                          mailto:i_il@mail.ru


Re: Strange executing batch

From
"Alexander V. Morokhovets"
Date:
Greetings,

IB> Class.forName("org.postgresql.Driver");
IB> Connection c = DriverManager.getConnection("jdbc:postgresql:....");
IB> PreparedStatement p = c.prepareStatement("insert into test(test) values(?)");
IB> c.setAutoCommit(false);
IB> for (int i = 0; i < 1000; i++) {
IB>  p.setString(1, "test"+i);
IB>  p.addBatch();
IB> }
IB> p.executeBatch();

IB> If at executing executeBatch() on 500 statement error is arised ,that
IB> for some reason first 499 statement are  committed.

Any suggestions/thoughts on the question? I'm not sure this is a JDBC
issue but the problem looks dangerous.



--
Alexander V. Morokhovets
+7 3832 132528

Shamrock Games
efdi@shamrock-games.ru
http://www.shamrock-games.ru