首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java JDBC驱动程序在初始执行后停止工作

问Java JDBC驱动程序在初始执行后停止工作
EN

Stack Overflow用户
提问于 2021-05-26 03:16:51
回答 1查看 62关注 0票数 0

我目前正在使用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的样子..。

代码语言:javascript
复制
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);
        }
    }
}

我在目录中的文件结构如下:

代码语言:javascript
复制
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的屏幕快照

EN

回答 1

Stack Overflow用户

发布于 2021-05-26 10:51:30

通过单击run按钮,我可以在连续运行代码20次后获得结果。唯一的区别是JDBC连接字符串,它是通过右键单击MYSQL连接直接复制的:

​

​

因此,在我的项目中,连接字符串如下:

代码语言:javascript
复制
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/?user=username","<username>","<password>");

或

你可以试一试

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67694277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档