English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Esta é a sequência típica de passos para usar lote com o objeto PrepareStatement-
criar instruções SQL usando placeholders.
usar esses doisprepareStatement() o método cria um objeto PrepareStatement.
usar para definir o commit automático como falso setAutoCommit().
usaraddBatch()Os métodos no objeto de instrução criado usando o método criar adicionam uma quantidade indeterminada de instruções SQL ao lote.
usarexecuteBatch()metodo da instância de statement criada para executar todas as instruções SQL.
Por fim, usecommit()Método para submeter todas as alterações.
Este código de exemplo é escrito com base no ambiente e configuração do banco de dados dos capítulos anteriores.
Copia e cola o seguinte exemplo no JDBCExample.java, compile e execute conforme instruído:
// Importar os pacotes necessários import java.sql.*; public class JDBCExample { // Nome do driver JDBC e URL do banco de dados static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // Credenciais do banco de dados static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; PreparedStatement stmt = null; try{ // Registrar o driver JDBC Class.forName("com.mysql.jdbc.Driver"); // Abrir conexão System.out.println("Conectando ao banco de dados..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // Criar instrução SQL String SQL = "INSERT INTO Employees(id,first,last,age) "; + "VALUES(?, ?, ?, ?)"; // Criar preparedStatement System.out.println("Criando statement..."); stmt = conn.prepareStatement(SQL); // Definir o commit automático como false conn.setAutoCommit(false); // Primeiro, vamos selecionar todos os registros e mostrá-los. printRows( stmt ); // definir variável stmt.setInt( 1, 400 ); stmt.setString( 2, "Pappu" ); stmt.setString( 3, "Singh" ); stmt.setInt( 4, 33 ); // Adicionar ao lote stmt.addBatch(); // definir variável stmt.setInt( 1, 401 ); stmt.setString( 2, "Pawan" ); stmt.setString( 3, "Singh" ); stmt.setInt( 4, 31 ); // Adicionar ao lote stmt.addBatch(); // Criar um int[] para salvar os valores retornados int[] count = stmt.executeBatch(); //Submeter explicitamente a declaração para aplicar as alterações conn.commit(); // Da mesma forma, vamos escolher todos os registros e exibi-los. printRows( stmt ); // Limpar o ambiente catch(SQLException se catch(SQLException se){ } //catch(Exception e){ se.printStackTrace(); } //e.printStackTrace(); finally{ } //Usado para fechar recursos try{ stmt.close(); catch(SQLException se }2} } try{ if(conn!=null) catch(SQLException se){ } se.printStackTrace(); } } System.out.println("Adeus!"); }//Fim do main public static void printRows(Statement stmt) throws SQLException{ System.out.println("Exibindo linhas disponíveis..."); // Vamos escolher todos os registros e exibi-los. String sql = \ ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ //Procurar por nome de coluna int id = rs.getInt("id"); int idade = rs.getInt("idade"); String first = rs.getString("first"); String last = rs.getString("last"); //Mostrar valor System.out.print("ID: ", + id); System.out.print(", Idade: ", + idade); System.out.print(", Primeiro: ", + primeiro); System.out.println(", Último: ", + last); } System.out.println(); rs.close(); }//Fim do printRows() }//Fim do JDBCExample
Agora, vamos compilar o exemplo acima, conforme mostrado a seguir:
C:\>javac JDBCExample.java C:\>
ExecuçãoJDBCExampleProduzirá o seguinte resultado:-
C:\>java JDBCExample Conectando ao banco de dados... Criando sentença... Exibindo linhas disponíveis... ID: 95, Idade: 20, Primeiro: Sima, Último: Chug ID: 100, Idade: 35, Primeiro: Zara, Último: Ali ID: 101, Idade: 25, Primeiro: Mahnaz, Último: Fatma ID: 102, Idade: 30, Primeiro: Zaid, Último: Khan ID: 103, Idade: 30, Primeiro: Sumit, Último: Mittal ID: 110, Idade: 20, Primeiro: Sima, Último: Chug ID: 200, Idade: 30, Primeiro: Zia, Último: Ali ID: 201, Idade: 35, Primeiro: Raj, Último: Kumar Exibindo linhas disponíveis... ID: 95, Idade: 20, Primeiro: Sima, Último: Chug ID: 100, Idade: 35, Primeiro: Zara, Último: Ali ID: 101, Idade: 25, Primeiro: Mahnaz, Último: Fatma ID: 102, Idade: 30, Primeiro: Zaid, Último: Khan ID: 103, Idade: 30, Primeiro: Sumit, Último: Mittal ID: 110, Idade: 20, Primeiro: Sima, Último: Chug ID: 200, Idade: 30, Primeiro: Zia, Último: Ali ID: 201, Idade: 35, Primeiro: Raj, Último: Kumar ID: 400, Idade: 33, Primeiro: Pappu, Último: Singh ID: 401, Idade: 31, Primeiro: Pawan, Último: Singh Adeus! C:\>