pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Thorsten Meinl <Thorsten@meinl.bnv-bamberg.de>
To: Campano, Troy <Troy.Campano@LibertyMutual.com>
Cc: pgsql-jdbc@postgresql.org
Subject: Re: batch example
Date: Mon, 30 Dec 2002 18:28:58 +0100
Message-ID: <3E10825A.9000608@meinl.bnv-bamberg.de> (raw)
In-Reply-To: <82C3FD729CFA504CA44E7D32BDED411FBD378A@LM-EXMSG-07.lm.lmig.com>
References: <82C3FD729CFA504CA44E7D32BDED411FBD378A@LM-EXMSG-07.lm.lmig.com>

Hello Troy,

> Can someone point me to an example using a batch statement for 
> Postgresql?
>
Maybe this helps... Don't be confused about the creation of the 
SQL-Statements, the point is "sth.addBatch" and "sth.executeBatch".

    public void saveChanges() throws SQLException {
      if (! dataChanged) return;

      Statement sth = PDMObject.this.con.createStatement();
      for (int i = 0; i < attributeCount; i++) {
        try {
          if (attributes[i].isNew()) {
            sth.addBatch("INSERT INTO PDM_Spaltennamen (name, typid, 
text_de, text_en, text_fr, pos, menueIndex) VALUES (" +
            "'" + attributes[i].getName() + "', " +
            "(SELECT id FROM PDM_Typen WHERE (objektTyp = '" + 
relationName + "')), " +
            ((attributes[i].getText("de") != null) ? ("'" + 
attributes[i].getText("de") + "'") : "NULL") + ", " +
            ((attributes[i].getText("en") != null) ? ("'" + 
attributes[i].getText("en") + "'") : "NULL") + ", " +
            ((attributes[i].getText("fr") != null) ? ("'" + 
attributes[i].getText("fr") + "'") : "NULL") + ", " +
            + attributes[i].getPosition() + ", " +
            0 + ")"
            );
          } else {
            sth.addBatch("UPDATE PDM_Spaltennamen SET " +
                         ((attributes[i].getText("de") != null) ? 
("text_de = '" + attributes[i].getText("de") + "'") : "text_de = NULL") 
+ ", " +
                         ((attributes[i].getText("en") != null) ? 
("text_en = '" + attributes[i].getText("en") + "'") : "text_en = NULL") 
+ ", " +
                         ((attributes[i].getText("fr") != null) ? 
("text_fr = '" + attributes[i].getText("fr") + "'") : "text_fr = NULL") 
+ ", " +
                         "pos = " + attributes[i].getPosition() + ", " +
                         "menueIndex = " + 0 +
                         " WHERE (name = '" + attributes[i].getName() + 
"') AND " +
                         "(typid = (SELECT id FROM PDM_Typen WHERE 
(objekttyp = '" + relationName + "')))"
                         );
          }
        } catch (WrongArgumentException e) { // sollte nicht passieren, 
sonst Programmierfehler
          e.printStackTrace();
        }
      }
      sth.executeBatch();
      sth.close();
      dataChanged = false;
    }


Greetings

Thorsten




view thread (2+ messages)

Message-ID: <3E10825A.9000608@meinl.bnv-bamberg.de>
Permalink:  ../3E10825A.9000608@meinl.bnv-bamberg.de/
Also on:    postgresql.org/message-id/3E10825A.9000608@meinl.bnv-bamberg.de

 · 

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-sql@postgresql.org
  Cc: Thorsten@meinl.bnv-bamberg.de, Troy.Campano@LibertyMutual.com, pgsql-jdbc@postgresql.org
  Subject: Re: batch example
  In-Reply-To: <3E10825A.9000608@meinl.bnv-bamberg.de>

* 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