English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JDBC utilise l'objet Statement pour les lots

C'est une séquence typique d'étapes pour utiliser les lots avec l'objet Statement-

  1. Utilisez ces deuxcreateStatement()La méthode crée un objet Statement.

  2. Utilisez pour définir le commit automatique sur false setAutoCommit().

  3. 使用addBatch()Les méthodes sur l'objet de phrase créées ajoutent des requêtes SQL en nombre illimité au lot.

  4. 使用executeBatch()创建的语句对象上的方法执行所有SQL语句。

  5. 最后,使用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";
   //  数据库凭证
   static final String USER = "username";
   static final String PASS = "password";
   
   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      // 注册JDBC驱动程序
      Class.forName("com.mysql.jdbc.Driver");
      // 打开连接
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);
      // 创建语句
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
      // 将自动提交设置为false
      conn.setAutoCommit(false);
      // 首先,让我们选择所有记录并显示它们。
      printRows( stmt );
  
      // 创建SQL语句
      String SQL = "INSERT INTO Employees (id, first, last, age) " + 
                   "VALUES(200,'Zia', 'Ali', 30)";
      // Ajouter l'instruction SQL ci-dessus au lot.
      stmt.addBatch(SQL);
      // Créer une autre instruction SQL
      SQL = "INSERT INTO Employees (id, first, last, age) " +
            "VALUES(201Raj, Kumar, 35";
      // Ajouter l'instruction SQL ci-dessus au lot.
      stmt.addBatch(SQL);
      // Créer une autre instruction SQL
      SQL = "UPDATE Employees SET age =" 35 "" +
            "WHERE id =" 100";
      // Ajouter l'instruction SQL ci-dessus au lot.
      stmt.addBatch(SQL);
      // Créer un int[] pour sauvegarder les valeurs retournées
      int[] count = stmt.executeBatch();
      //Soumettre explicitement l'instruction pour appliquer les modifications
      conn.commit();
      // De même, sélectionnons tous les enregistrements et affichons-les.
      printRows( stmt );
      // Nettoyage de l'environnement
      stmt.close();
      conn.close();
   }
      //Gestion des erreurs JDBC
      se.printStackTrace();
   }
      //Gestion de l'erreur Class.forName
      e.printStackTrace();
   }
      //Pour fermer les ressources
      try{
         if(stmt!=null)
            stmt.close();
      }2}
      
      }
      try{
         if(conn!=null)
            conn.close();
      }
         se.printStackTrace();
      }
   }
   System.out.println("Au revoir!");
}//Fin de main
public static void printRows(Statement stmt) throws SQLException{
   System.out.println("Affichage des lignes disponibles...");
   // Sélectionnons tous les enregistrements et affichons-les.
   String sql = "SELECT id, first, last, age FROM Employees";
   ResultSet rs = stmt.executeQuery(sql);
   while(rs.next()){
      //recherche par nom de colonne
      int id = rs.getInt("id");
      int age = rs.getInt("age");
      String first = rs.getString("first");
      String last = rs.getString("last");
      //valeur affichée
      System.out.print("ID: Â ") + id);
      System.out.print(", Âge: Â ") + age);
      System.out.print(", Premier: " + first);
      System.out.println(", Dernier: " + last);
   }
   System.out.println();
   rs.close();
}//Fin de printRows()
}//Fin de JDBCExample

Maintenant, compilons l'exemple ci-dessus, comme suit :

C:\>javac JDBCExample.java
C:\>

Au moment de l'exécutionJDBCExample,il produira les résultats suivants-

C:\>java JDBCExample
Connexion à la base de données...
Création de l'instruction...
Affichage des lignes disponibles...
ID: 95, Âge: 2, Premier: Sima, Dernier: Chug
ID: 10, Âge: 18, Premier: Zara, Dernier: Ali
ID: 101, Âge: 25, Premier: Mahnaz, Dernier: Fatma
ID: 102, Âge: 3, Premier: Zaid, Dernier: Khan
ID: 103, Âge: 3, Premier: Sumit, Dernier: Mittal
ID: 110, Âge: 2, Premier: Sima, Dernier: Chug
Affichage des lignes disponibles...
ID: 95, Âge: 2, Premier: Sima, Dernier: Chug
ID: 10, Âge: 35, Premier: Zara, Dernier: Ali
ID: 101, Âge: 25, Premier: Mahnaz, Dernier: Fatma
ID: 102, Âge: 3, Premier: Zaid, Dernier: Khan
ID: 103, Âge: 3, Premier: Sumit, Dernier: Mittal
ID: 110, Âge: 2, Premier: Sima, Dernier: Chug
ID: 200, Âge: 3, Premier: Zia, Dernier: Ali
ID: 201, Âge: 35, Premier: Raj, Dernier: Kumar
Au revoir !
C:\>