![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
batchInsert処理を行うと正常終了しますが、DBには追加されてiいません。
ConnectionMgr.commitConnection(conn);文が終了後実行されています。
SQL文
public void batchInsertSgnbtuInfo(ArrayList list, String rysnoo, String pgmId, Connection conn) throws DBException, SQLException {
if (list == null || list.size() < 1) {
return;
}
PreparedStatement pstmt = null;
int[] rst = null;
//sql文
StringBuffer sql = new StringBuffer();
sql.append(" INSERT INTO sgnjsk_inf (" +
" kjikminoo, " +
" hnkrrkymd, " +
" untbng, " +
" sgnetyjyn, " +
" sgncod ) " +
" VALUES (?, to_timestamp(?, 'yyyy/MM/dd hh24:mi:ss'), ?, ?, ?);
try {
pstmt = conn.prepareStatement(sql.toString());
//SQL文のパーラメタを設置
for (Iterator it = list.iterator(); it.hasNext();) {
SgnbtujskinfInfo info = (SgnbtujskinfInfo) it.next();
int i = 1;
// VALUES
pstmt.setString(i++, info.getKjikminoo());
pstmt.setString(i++, info.getHnkrrkymd());
// ユニット番号
pstmt.setInt(i++, info.getUntbng());
//資源登録順
pstmt.setInt(i++, info.getSgnetyjyn());
pstmt.setString(i++, info.getSgncod());
pstmt.addBatch();
}
pstmt.executeBatch();
} finally {
if (pstmt != null) {
pstmt.close();
}
}
}
よろしくご教授ください。
No.3ベストアンサー
- 回答日時:
であれば、やはりcommitされていないか、どこかでrollbackされているということぐらいしか思い当たりません・・・
executeBatchではなく、executeUpdateで1件だけInsertした場合はちゃんと登録されるのですよね?
No.2
- 回答日時:
APIに書いてあります。
初心者で知識がないのであれば、まずは検索してみることをおすすめします。http://docs.oracle.com/javase/jp/6/api/java/sql/ …
戻り値はintの配列なので、そのまま出力しても期待する内容にはなりません。
たとえば、
for (int i = 0; i < result.length; i++) {
System.out.println((i+1) + "つ目の結果:" + result[i]);
}
こんな風にしたら、各SQLでの結果が分かると思います。
出力される値の内容についてはAPIを見てください。
この回答への補足
アドバイスありがとうございます。
配列で戻り値を表示させましたところ、
excecuteBatch return1 = 1
と表示され、1件正常に追加されたことを示しているようです。
しかし、PgAdominでDBの中を見ても、追加されたはずのデータがありません。
この後、どのように調査を進めていけばよろしいでしょうか。
恐れ入りますがよろしくお願いします。
No.1
- 回答日時:
ConnectionMgrがどのようなクラスなのか分かりませんが、確実にcommitはされているということなのですよね。
まずは、executeBatch()の戻り値を確認してみてはいかがでしょうか。
この回答への補足
ご回答ありがとうございました。
さっそく、executeBatch()の戻り値を確認して見ましたところ、
return = [I@9c6201
が返ってきました。
初心者で、知識がありませんので、申し訳ありませんが、
returnコードの意味と、対応策を教えていただけないでしょうか。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DATE型にNULLをセットするには?
-
SQL文で素早くNULLを除外する方法
-
副問合せで質問です
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
SQL文で右から1文字だけ削除す...
-
SELECTで1件のみ取得するには?
-
Accessで別テーブルの値をフォ...
-
Excelでセルの書式設定を使用し...
-
select句副問い合わせ 値の個...
-
使うべきでない文字。
-
DataGridViewの内容をDBに反映...
-
最新の日付とその金額をクエリ...
-
SQL>UPDATEと同時にその件数を...
-
ファイル書込みで一行もしくは...
-
JSPのNULLレコード表示について...
-
固定値を含む結合と複数テーブ...
-
oracleの分割delete
-
sum()の出力結果順に並び替えを...
-
Date型にNULLをセットしたい V...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL文で素早くNULLを除外する方法
-
DATE型にNULLをセットするには?
-
正常終了するが追加されない
-
ストアドプロシージャのSET文に...
-
is null のandについて(日付...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
select句副問い合わせ 値の個...
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
ADO VBA 実行時エラー3021
-
ファイル書込みで一行もしくは...
-
select insertで複数テーブルか...
-
JSPのNULLレコード表示について...
-
レコードが存在しなかった場合
-
Access終了時の最適化が失敗?
-
実績累計の求め方と意味を教え...
-
sqlplusの処理が途中でとまる
おすすめ情報