我目前正在使用Java on VS Code制作一个后端报告系统(用于投票系统分配),我正在使用JDBC库连接到一个MySQL数据库,以便进行计算和统计等。因此,一旦我创建了一个项目文件并将mysql-connector-java-8.0.25.jar包含在引用的库中,我就可以很好地连接到DB并从表中检索数据,但是在几次执行之后,我不再得到输出,它显示错误"java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver“。
谁能告诉我为什么会发生这种情况,以及如何修复它?据我所知,环境变量没有发生任何变化(至少从我在Windows路径列表中可以看到的情况),除非某些东西被覆盖了,或者它是某种bug。任何建议都会有很大的帮助,我一整天都想不出来
这是我的ReportSystem.java的样子..。
import java.sql.*;
public class ReportSystem
{
public static void main(String[] args)
{
//Test driver connection/registration
try
{
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ElectionDB","<username>","<password>");
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery("SELECT * FROM ElectionDB.Votes");
int typeColumn = 1;
int districtColumn = 2;
//Output results line by line
while(result.next())
{
System.out.println(result.getString(typeColumn));
System.out.println(result.getString(districtColumn));
}
//Remember to close the connection
conn.close();
}
catch (Exception e)
{
System.out.println(e);
}
}
}我在目录中的文件结构如下:
ReportSystem
>src > ReportSystem.java
> ReportSystem.class
>lib
>.vscode > settings.json
The JRE system library used is: [jdk-16.0.1]
The Referenced Libraries contains: [mysql-connector-java-8.0.25.jar]context Project Setup in VS Code的屏幕快照
发布于 2021-05-26 10:51:30
通过单击run按钮,我可以在连续运行代码20次后获得结果。唯一的区别是JDBC连接字符串,它是通过右键单击MYSQL连接直接复制的:

因此,在我的项目中,连接字符串如下:
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/?user=username","<username>","<password>");或
你可以试一试
String url="jdbc:mysql://localhost:3306/ElectionDB?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"供您参考,操作系统信息:
连接器: 8.0 // mysql-mysql-java-8.0.25.jar
VSCode: 1.56.2 // java.home:JDK16 // VSCode调试器: 0.33.1
https://stackoverflow.com/questions/67694277
复制相似问题