sql >> データベース >  >> RDS >> Mysql

Java-データベースの挿入と更新をバッチ処理する方法

    Javaでは追加のみが許可されませんか?プリペアドステートメントの文字列パラメータで、?プレースホルダーの場合は、SQLを指定するためのパラメーターのみです。

    あなたの場合、2つのプリペアドステートメントオブジェクトが必要になる場合があり、ループスルーで、どちらを呼び出すかを決定できます。したがって、次のようになります。

    PreparedStatement insertPstmt = connection.prepareStatement("INSERT INTO MY_TABLE VALUES(?,?,?,?)");
    PreparedStatement updatePstmt = connection.prepareStatement("UPDATE MY_TABLE, SET MY_VAL=? WHERE MY_VAL IS NULL");
    
    While (<condition>) {
      If (<insert condition>) {
        // use insert pstmt and add batch
      } else {
        // use update pstmt and add batch
      }
    }
    
    insertPstmt.executeBatch(); 
    updatePstmt.executeBatch();
    

    更新に依存する挿入がある場合は、それに応じてバッチを実行できます。これにより、更新が正しく機能することが確認されます。更新に依存しない可能性があるため、最初に挿入を実行することを考えます。



    1. 認証プラグイン「caching_sha2_password」を読み込めません

    2. カテゴリ、サブカテゴリ、および関連する書籍のデータベースを設計する

    3. 2017より前のSQLServerのString_agg

    4. MySQLを使用してテーブルをINNODBバッファープールにプリロードする方法は?