Maison  >  Article  >  Java  >  Comment gérer les exceptions dans JDBC ? Gestion des exceptions dans JDBC

Comment gérer les exceptions dans JDBC ? Gestion des exceptions dans JDBC

青灯夜游
青灯夜游original
2018-11-22 18:13:164107parcourir

Le contenu de cet article est de présenter comment gérer les exceptions dans JDBC ? Gestion des exceptions dans JDBC. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

La gestion des exceptions JDBC est très similaire à la gestion des exceptions Java, mais pour JDBC, l'exception la plus courante que nous traiterons est java.sql.SQLException, qui est la classe d'exception de base des exceptions JDBC.

Nous utiliserons l'exception java.sql.SQLException pour présenter comment JDBC gère les exceptions. Tout d'abord, examinons les connaissances pertinentes de java.sql.SQLException :

Méthode SQLException

SQLException peut se produire dans le pilote et base de données. Lorsqu'une telle exception se produit, un objet de type SQLException est transmis à la clause catch.

L'objet SQLException transmis possède les méthodes suivantes qui peuvent être utilisées pour récupérer des informations supplémentaires sur l'exception :

Comment gérer les exceptions dans JDBC ? Gestion des exceptions dans JDBC

Gestion des exceptions pour JDBC

En utilisant les informations fournies par l'objet Exception, vous pouvez intercepter l'exception et continuer votre programme de manière appropriée. Il s'agit de la forme générale du bloc try :

try {
   // 你的危险代码在这些大括号之间!!!!
   }catch(Exception ex) {
   // 你的异常处理代码介于这些代码之间。
   
   }finally {
   // 必须始终执行这些代码
   }

Exemple :

Étudiez l'exemple de code suivant pour comprendre l'utilisation du bloc try .... catch ... enfin.

//步骤1:导入必需的软件包
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;
   try{
      //步骤 2: 注册JDBC驱动程序
      Class.forName("com.mysql.jdbc.Driver");

      //步骤 3: 打开连接
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);

      //步骤 4: 执行查询
      System.out.println("Creating statement...");
      Statement stmt = conn.createStatement();
      String sql;
      sql = "SELECT id, first, last, age FROM Employees";
      ResultSet rs = stmt.executeQuery(sql);

      //步骤 5: 从结果集中提取数据
      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //显示值
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }
      //步骤 6: Clean-up environment
      rs.close();
      stmt.close();
      conn.close();
   }catch(SQLException se){
      //处理JDBC错误
      se.printStackTrace();
   }catch(Exception e){
      //处理Class.forName的错误
      e.printStackTrace();
   }finally{
      //使用finally块,关闭连接
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }//end finally try
   }//end try
   System.out.println("Goodbye!");
}//end main
}//end JDBCExample

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

Comment gérer les exceptions dans JDBC ? Gestion des exceptions dans JDBC

Lors de l'exécution de JDBCExample, s'il n'y a pas de problème, il produira ce qui suit résultats, sinon l'erreur correspondante sera détectée et le message d'erreur sera affiché

Comment gérer les exceptions dans JDBC ? Gestion des exceptions dans JDBC

Essayez l'exemple ci-dessus en passant un mauvais nom de base de données ou un mauvais nom d'utilisateur ou mot de passe et vérifiez le résultat.

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn