Mysql
 sql >> база данни >  >> RDS >> Mysql

Java - как да групирате вмъквания и актуализации на база данни

Java няма да ви позволи да добавите само ? в параметъра на низовия низ на readystatement, тъй като очаква ? за заместващо място само за параметрите към дадения 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();

ако имате някакъв insert, който зависи от актуализацията, можете да изпълните партидите съответно. Това ще гарантира, че актуализацията ще работи правилно. Бих помислил първо да изпълня insert, тъй като те може да не зависят от актуализацията.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дублирано име на колона на JOIN в mysql

  2. Бройте от таблица, но спрете да броите на определено число

  3. Как да създадете персонализирана колона със знаци за автоматично увеличение

  4. Какъв е най-бързият начин да изберете най-близкото географско място от базата данни на mysql?

  5. Как да се свържете от командния ред на Windows към командния ред на mysql