我遇到一个问题,我无法通过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。:我对某些回答者发表评论或提出新问题犹豫不决,但我认为我的问题可能更具体。