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

JDBC Usuń i wstaw za pomocą wsadu

Dla usunięcia części:

Użyj addBatch, a następnie executeBatch:

Statement st = con.createStatement();
st.addBatch("DELETE FROM tbl1");
st.addBatch("DELETE FROM tbl2");
st.addBatch("DELETE FROM tbl3");
int[] results = st.executeBatch();

Wtedy wyniki będą zawierać tablicę z liczbą wierszy usuniętych z każdej tabeli.

Do wstawienia:

Oto przykład pokazujący, jak wstawić kilka rekordów w procesie wsadowym, za pośrednictwem JDBC PreparedStatement.

dbConnection.setAutoCommit(false);//commit trasaction manually

String insertTableSQL = "INSERT INTO DBUSER"
            + "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
            + "(?,?,?,?)";              
PreparedStatement = dbConnection.prepareStatement(insertTableSQL);

preparedStatement.setInt(1, 101);
preparedStatement.setString(2, "mkyong101");
preparedStatement.setString(3, "system");
preparedStatement.setTimestamp(4, getCurrentTimeStamp());
preparedStatement.addBatch();

preparedStatement.setInt(1, 102);
preparedStatement.setString(2, "mkyong102");
preparedStatement.setString(3, "system");
preparedStatement.setTimestamp(4, getCurrentTimeStamp());
preparedStatement.addBatch();
preparedStatement.executeBatch();

dbConnection.commit();

Link do zasobów:

Przykład JDBC PreparedStatement — aktualizacja zbiorcza

AKTUALIZACJA:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/** Copyright (c), AnkitMittal JavaMadeSoEasy.com */
public class PreparedStatementDeleteExample {
    public static void main(String... arg) {
           Connection con = null;
           PreparedStatement prepStmt = null;
           try {
                  // registering Oracle driver class
                  Class.forName("oracle.jdbc.driver.OracleDriver");

                  // getting connection
                  con = DriverManager.getConnection(
                               "jdbc:oracle:thin:@localhost:1521:orcl",
                               "ankit", "Oracle123");
                  System.out.println("Connection established successfully!");             

                  con.setAutoCommit(false); //Now, transactions won't be committed automatically.

                  prepStmt = con.prepareStatement("DELETE from EMPLOYEE where ID=? ");

                  //1) add set of parameters in PreparedStatement's object - BATCH of commands
                  prepStmt.setInt(1, 7); //substitute first occurrence of ? with 7
                  prepStmt.addBatch();

                  //2) add set of parameters in PreparedStatement's object - BATCH of commands                  
                  prepStmt.setInt(1, 8); //substitute first occurrence of ? with 8
                  prepStmt.addBatch();


                  //Execute PreparedStatement batch
                  prepStmt.executeBatch();
                  System.out.println("PreparedStatement Batch executed, DELETE done");

                  con.commit(); //commit all the transactions

           } catch (ClassNotFoundException e) {
                  e.printStackTrace();
           } catch (SQLException e) {
                  e.printStackTrace();
           }
           finally{
                  try {
                        if(prepStmt!=null) prepStmt.close(); //close PreparedStatement
                        if(con!=null) con.close(); // close connection
                  } catch (SQLException e) {
                        e.printStackTrace();
                  }
           }
    }
}

WYJŚCIE:

Connection established successfully!
PreparedStatement Batch executed, DELETE done

W tym samouczku dowiedzieliśmy się, jak wykonać zapytanie DELETE (polecenie DML) przy użyciu addBatch() narzędzia PreparedStatement i executeBatch() metody w Java JDBC.

Link do zasobów:

  1. JDBC Przetwarzanie wsadowe (wstawianie, aktualizacja i usuwanie wsadowe)
  2. JDBC- Batch PreparedStatement example- Wykonaj zapytanie DELETE ( DMLcommand) przy użyciu metod addBatch() i executeBatch() w języku Java



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. wolne zliczanie(*) w innoDB

  2. Jakiego typu danych kolumny powinienem użyć do przechowywania dużych ilości tekstu lub html

  3. Jak usunąć spacje z ciągu znaków w MySQL?

  4. Jaki jest rozmiar pamięci BIT(1)?

  5. Jak wybrać każdy n-ty wiersz z mysql