pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: dmp <danap@ttc-cmc.net>
To: Haifeng Liu <liuhaifeng@live.com>
To: pgsql-jdbc@postgresql.org
Subject: Re: Fwd: [ADMIN] Confuse about the behaveior of PreparedStatement.executeBatch (jdbc)
Date: Fri, 14 Dec 2012 08:56:48 -0700
Message-ID: <50CB4C40.7000104@ttc-cmc.net> (raw)
In-Reply-To: <BLU0-SMTP23378AE609963CCB543ED38B94D0@phx.gbl>
References: <BLU0-SMTP1143B3C57133A122263A47AB94E0@phx.gbl>
	<BLU0-SMTP23378AE609963CCB543ED38B94D0@phx.gbl>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-jdbc>

Hello,

Though a simple example of your code would provide a better response
from the mailing list, I will speculate based on the context of the
Java 6 API, statement class and your comments. Yes, the batch appears
to be proceeding.

Statement.executeBatch().

executeBatch

int[] executeBatch() throws SQLException
~
~
~
           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:
~
~
~
     Returns:
         an array of update counts containing one element for each command in 
the batch. The elements of the array are ordered according to the order in which 
commands were added to the batch.

Throws:
     SQLException - if a database access error occurs, this method is called on 
a closed Statement or the driver does not support batch statements. Throws 
BatchUpdateException (a subclass of SQLException) if one of the commands sent to 
the database fails to execute properly or attempts to return a result set.

You may be able to answer your own question by examining the int[] array that
is returned by way of BatchUpdateException.getUpdateCounts()

danap.

Haifeng Liu wrote:
>> Hi,
>>
>> I have a DB writer program written in Java, it do batch updates, and
>> will try to update each record in a batch if it failed. I think no any
>> record in a batch will be update if the batch failed, but weirdly I
>> found a few records update twice(very little amount among all records).
>>
>> Well, there is less stuff about postgresql jdbc driver. I wanna know
>> if executeBatch really keep all the records in a batch untouched when
>> the batch failed. Any help is appreciate.



-- 
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc



view thread (9+ messages)  latest in thread

Message-ID: <50CB4C40.7000104@ttc-cmc.net>
Permalink:  ../50CB4C40.7000104@ttc-cmc.net/
Also on:    postgresql.org/message-id/50CB4C40.7000104@ttc-cmc.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-admin@postgresql.org
  Cc: danap@ttc-cmc.net, liuhaifeng@live.com, pgsql-jdbc@postgresql.org
  Subject: Re: Fwd: [ADMIN] Confuse about the behaveior of PreparedStatement.executeBatch (jdbc)
  In-Reply-To: <50CB4C40.7000104@ttc-cmc.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox