仍然使用com.mysql.jdbc.Driver获取ClassNotFoundException

时间:2016-06-25 12:03:22

标签: java jdbc classnotfoundexception

我遇到一个问题,我无法通过java发出MySQL请求,因为驱动程序无法初始化,因为无法找到它。有question already asked尝试解决类似的问题,但在尝试了许多解决方案之后,没有任何事情可以实现。

问题来自行Class.forName(JDBC_DRIVER);,其中尝试初始化com.mysql.jdbc.Driver。我有一个ClassNotFoundException。根据{{​​3}}的答案,我应该简单地下载JAR文件MySQL Connector驱动程序,并通过导入它将它添加到我的项目类路径中:我在类路径中创建了一个名为lib的文件夹,并添加了mysqlc-connector.xxxjar文件它并刷新了我的项目。

这是我的代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class FirstExample {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/ChatWorld";

   //  Database credentials
   static final String USER = "root";
   static final String PASS = "********";

   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //STEP 2: Register JDBC driver
      Class.forName(JDBC_DRIVER);

      //STEP 3: Open a connection
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);

      //STEP 4: Execute a query
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
      String sql;
      sql = "SELECT * FROM account";
      ResultSet rs = stmt.executeQuery(sql);

      //STEP 5: Extract data from result set
      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         String username = rs.getString("username");
         String email = rs.getString("email");
         String birthdate = rs.getString("birthdate");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Username: " + username);
         System.out.print(", Email: " + email);
         System.out.println(", Birthdate: " + birthdate);
      }
      //STEP 6: Clean-up environment
      rs.close();
      stmt.close();
      conn.close();
   }catch(SQLException se){
      //Handle errors for JDBC
      se.printStackTrace();
   }catch(Exception e){
      //Handle errors for Class.forName
      e.printStackTrace();
   }finally{
      //finally block used to close resources
      try{
         if(stmt!=null)
            stmt.close();
      }catch(SQLException se2){
      }// nothing we can do
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }//end finally try
   }//end try
   System.out.println("Goodbye!");
}//end main
}//end FirstExample

我尝试在互联网上进行了很多搜索,而且我所有推荐的网站都建议导入MySQL连接器库,他们的解决方案似乎根据其他用户排除了问题,除了在我的情况下看起来像,但我不知道不知道我的错误。

我使用Eclipse作为IDE。

让我们指出我是java的新手,我是一个自学者,所以我还没有学到java的每一个细微之处,我可能已经错过了我的配置中的其他重点。

感谢您提前向任何人提供的帮助。

P.S。:我对某些回答者发表评论或提出新问题犹豫不决,但我认为我的问题可能更具体。

0 个答案:

没有答案