sql >> Databáze >  >> RDS >> Mysql

Java - jak dávkově vkládat a aktualizovat databázi

Java vám nedovolí přidat pouze ? v parametru řetězce readystatement, protože očekává ? pro zástupný symbol pouze pro parametry daného SQL.

Pro váš případ možná budete muset mít 2 připravené objekty příkazů a ve smyčce se můžete rozhodnout, který z nich zavoláte. Takže by to bylo něco jako níže:

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();

pokud máte nějaký insert , který je závislý na aktualizaci, můžete podle toho provést dávky. Tím zajistíte, že aktualizace bude fungovat správně. Nejdříve bych uvažoval o provedení insertu, protože nemusí záviset na aktualizaci.



  1. Správa rolí a atributů rolí v PostgreSQL

  2. Existuje způsob, jak se vyhnout řazení souborů, když se pořadí podle liší od klauzule where?

  3. Jak zjistím, kdy je můj kontejner mysql ukotvený a mysql připraven k přijímání dotazů?

  4. Vyhledávač slov scrabble:sestavení pokusu, uložení pokusu, použití pokusu?