Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Java - jak wsadowo wstawiać i aktualizować bazy danych

Java nie pozwoli ci tylko dodawać ? w parametrze string readystatement, ponieważ oczekuje ? dla symbolu zastępczego tylko dla parametrów do danego SQL.

W twoim przypadku być może będziesz musiał mieć 2 przygotowane obiekty instrukcji, a w pętli możesz podjąć decyzję, który z nich wywołać. Byłoby to więc coś takiego jak poniżej:

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

jeśli masz jakikolwiek insert , który jest zależny od aktualizacji, możesz odpowiednio wykonać partie. Dzięki temu aktualizacja będzie działać poprawnie. Najpierw pomyślałbym o wykonaniu insertu, ponieważ mogą one nie zależeć od aktualizacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy można użyć pliku .mylogin.cnf w c# do nawiązania połączenia?

  2. Zwróć klucz obcy za pomocą zapytania DQL

  3. Wpływ na wydajność zezwolenia na użycie aliasu w klauzuli HAVING

  4. MySQL Gdzie DateTime jest większy niż dzisiaj

  5. Najlepszy sposób na przechowywanie IP w bazie danych?