English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
这是将批处理与PrepareStatement对象一起使用的典型步骤序列-
使用占位符创建SQL语句。
使用这两种prepareStatement(); 方法创建PrepareStatement对象。
使用将自动提交设置为false setAutoCommit();。
使用addBatch();创建的语句对象上的方法将任意多的SQL语句添加到批处理中。
使用executeBatch();创建的语句对象上的方法执行所有SQL语句。
最后,使用commit();方法提交所有更改。
该示例代码是根据前几章中的环境和数据库设置编写的。
复制并粘贴以下示例到JDBCExample.java中,如下编译并运行:
// 导入所需的软件包 import java.sql.*; public class JDBCExample { // JDBC驱动程序名称和数据库URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // Informazioni di autenticazione del database static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; PreparedStatement stmt = null; try{ // Registriamo il driver JDBC Class.forName("com.mysql.jdbc.Driver"); // Apriamo la connessione System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // Creiamo la query SQL String SQL = "INSERT INTO Employees(id,first,last,age) " + VALUES(?, ?, ?, ?); // Creiamo il preparedStatement System.out.println("Creating statement..."); stmt = conn.prepareStatement(SQL); // Impostiamo l'autocommit su false conn.setAutoCommit(false); // Prima di tutto, selezioniamo tutti i record e li mostriamo. printRows(stmt); // Impostiamo le variabili stmt.setInt(1, 400); stmt.setString(2, "Pappu"); stmt.setString(3, "Singh"); stmt.setInt(4, 33); // Aggiungiamo al batch stmt.addBatch(); // Impostiamo le variabili stmt.setInt(1, 401); stmt.setString(2, "Pawan"); stmt.setString(3, "Singh"); stmt.setInt(4, 31); // Aggiungiamo al batch stmt.addBatch(); // Creiamo un int[] per salvare i valori restituiti int[] count = stmt.executeBatch(); // Esprimiamo chiaramente il commit per applicare le modifiche conn.commit(); // Anche noi selezioniamo tutti i record e li mostriamo. printRows(stmt); //Pulizia dell'ambiente stmt.close(); conn.close(); } //Gestisce gli errori JDBC se.printStackTrace(); } //Gestisce l'errore di Class.forName e.printStackTrace(); } //Usato per chiudere le risorse try{ if(stmt!=null) stmt.close(); } } try{ if(conn!=null) conn.close(); } se.printStackTrace(); } } System.out.println("Arrivederci!"); //Fine di main public static void printRows(Statement stmt) throws SQLException{ System.out.println("Visualizzando righe disponibili..."); //Scegliamo tutti i record e mostriamoli. String sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ //Ricerca per nome di colonna int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Mostra i valori System.out.print("ID: "+ id); System.out.print(", Età: "+ age); System.out.print(", Primo: "+ first); System.out.println(", Ultimo: "+ last); } System.out.println(); rs.close(); //Fine di printRows() //Fine di EsempioJDBC
Ora, compiliamo l'esempio sopra riportato come segue:
C:\>javac EsempioJDBC.java C:\>
durante l'esecuzioneEsempioJDBCQuesto produrrà i seguenti risultati-
C:\>java JDBCExample Connettendo al database... Creando statement... Visualizzando righe disponibili... ID: 95, Età: 20, Primo: Sima, Cognome: Chug ID: 100, Età: 35, Primo: Zara, Cognome: Ali ID: 101, Età: 25, Primo: Mahnaz, Cognome: Fatma ID: 102, Età: 30, Primo: Zaid, Cognome: Khan ID: 103, Età: 30, Primo: Sumit, Cognome: Mittal ID: 110, Età: 20, Primo: Sima, Cognome: Chug ID: 200, Età: 30, Primo: Zia, Cognome: Ali ID: 201, Età: 35, Primo: Raj, Cognome: Kumar Visualizzando righe disponibili... ID: 95, Età: 20, Primo: Sima, Cognome: Chug ID: 100, Età: 35, Primo: Zara, Cognome: Ali ID: 101, Età: 25, Primo: Mahnaz, Cognome: Fatma ID: 102, Età: 30, Primo: Zaid, Cognome: Khan ID: 103, Età: 30, Primo: Sumit, Cognome: Mittal ID: 110, Età: 20, Primo: Sima, Cognome: Chug ID: 200, Età: 30, Primo: Zia, Cognome: Ali ID: 201, Età: 35, Primo: Raj, Cognome: Kumar ID: 400, Età: 33, Primo: Pappu, Cognome: Singh ID: 401, Età: 31, Primo: Pawan, Cognome: Singh Arrivederci! C:\>