2

これをデータベースに更新する必要があります。問題は、データベースで複数回更新する方法がわからないことです。

public void generate() {
    KpiMsg804 upd = createKpiMsg804();
    try {
          st = conn.createStatement();
          System.out.println("Updating Values");
          //Updating Values into DB
          String query = "insert into msg_new_to_bde("
              + "tablename,action,keyinfo1,keyinfo2) values(?, ?, ?, ?)";
          pstmt = conn.prepareStatement(query); // create a statement
          pstmt.setString(1,upd.getTableName());
          pstmt.setInt(2,upd.getAction()); // set value of staus of action
          pstmt.setString(3,upd.getKeyInfo1()); // set keyinfo value1
          pstmt.setString(4,upd.getKeyInfo2()); // set keyinfo value2
          int rows = pstmt.executeUpdate();
          System.out.println("Number of Rows Updated" +rows);
          // execute insert statement
    } catch (SQLException e) {
        e.printStackTrace();
    }
4

1 に答える 1

0

おそらく、JDBC addBatch() および executeBatch() 機能を使用する必要があります: JDBC insert multiple rows . これにより、複数の行をキューに入れ、それらを 1 つのグループに挿入できます。

あなたの質問の他の解釈は、自動コミットをオフにしてから、JDBC begin() および commit() 機能を使用していくつかの異なるテーブルに挿入する必要があり、それらはすべて同時に入るということです。

pstmt.executeUpdate(Table1);
pstmt.executeUpdate(Table2);
conn.commit();

これにより、すべての行が 1 つのトランザクションとして、つまり一度に挿入されます。

于 2013-01-08T13:07:26.893 に答える