Akio KUDOH
leafl****@gmail*****
2007年 4月 3日 (火) 18:00:08 JST
度々すみません。工藤と申します。 DatabaseMetadata#supportsBatchUpdates()の結果はtrueとなりますが、 バッチ更新はサポートされていませんでしょうか。 JavaプログラムからPostgresForestへバッチ更新を行うと、 INSERT/UPDATE/DELETEが完了しないようです。 Statement#executeBatch()の返却結果である更新件数が、全てゼロと なり、DBにも更新結果が反映されません。 以下、再現ソースとなります。 import java.sql.*; public class BatchSql { public static void main(String[] args) throws Exception { Class.forName("org.postgresforest.Driver"); Connection conn = DriverManager.getConnection( "jdbc:postgresforest:GSC=//sv1:5432/gsc @ sample","user","pass"); conn.setAutoCommit(false); Statement stmt = conn.createStatement(); // テーブル仕様: create table a(b varchar); stmt.addBatch("INSERT INTO a (b) VALUES ('foo')"); stmt.addBatch("INSERT INTO a (b) VALUES ('bar')"); int[] cnt = stmt.executeBatch(); for (int i = 0; i < cnt.length; i++) { // Postgres直接接続だと1が、PostgresForestだと0が返る System.out.println(cnt[i]); } conn.commit(); stmt.close(); conn.close(); } } PostgresForestはバージョン4.0.1を使用しております。 よろしくお願いいたします。