首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决这个Java连接错误?

问如何解决这个Java连接错误?
EN

Stack Overflow用户
提问于 2020-04-27 15:02:44
回答 5查看 5K关注 0票数 2

我编写了一个简单的Jdbc连接程序。我把MySQL连接器的罐子放了。我还在环境变量中添加了类路径。还是解决不了这个连接错误。

这是我的密码:

代码语言:javascript
复制
public class check {

    public static void main(String[] args) {

        System.out.println("-------- MySQL JDBC Connection Demo ------------");
        try
        {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } 
        catch (ClassNotFoundException e) {
            System.out.println("MySQL JDBC Driver not found !!");
            return;
        }
        System.out.println("MySQL JDBC Driver Registered!");
        Connection connection = null;
        try {
            connection = DriverManager
                .getConnection("jdbc:mysql://localhost:3306/company","root","");
            System.out.println("SQL Connection to database established!");

        } catch (SQLException e) {
            System.out.println("Connection Failed! Check output console");
            return;
        } finally {
            try
            {
                if(connection != null)
                    connection.close();
                System.out.println("Connection closed !!");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

输出:

代码语言:javascript
复制
-------- MySQL JDBC Connection Demo ----------
MySQL JDBC Driver Registered!
Connection Failed! Check output console
Connection closed !!
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-04-27 15:23:20

替换以下行

代码语言:javascript
复制
} catch (SQLException e) {
    System.out.println("Connection Failed! Check output console");
    return;
}

使用

代码语言:javascript
复制
} catch (SQLException e) {
    System.out.println("Connection Failed! Check output console");
    e.printStackTrace();
}

这样你就能找到问题的根本原因。您当前的代码只是简单地吃掉了这些重要的信息。

在附带说明中,删除以下残留代码:

代码语言:javascript
复制
try
{
    Class.forName("com.mysql.cj.jdbc.Driver");
} 
catch (ClassNotFoundException e) {
    System.out.println("MySQL JDBC Driver not found !!");
    return;
}

从JDBC4.0开始就不需要Class.forName("com.mysql.cj.jdbc.Driver")了。

票数 3
EN

Stack Overflow用户

发布于 2020-04-27 15:04:43

异常包含有用的信息。通过捕捉它们并打印“错误!”,您将消除此信息。

这不是处理异常的方法。这里的规则是:记录它/显示错误并不能处理它。所以,不要。

只需在您的主方法上声明“抛出异常”,并删除所有的尝试/捕获内容。使代码更加可读性更强,现在您可以看到错误的全部细节。

如果您必须捕获这些异常,那么当您不知道该做什么时,catch块的适当代码是:throw new RuntimeException("Unhandled exception", e); --这仍然可以保证您看到所有错误消息和其他细节。

一旦你这样做了,错误信息就会告诉你出了什么问题。

票数 2
EN

Stack Overflow用户

发布于 2021-03-06 07:38:34

要与JDBC建立连接,需要将MySQL连接器jar文件导入到项目中,然后JDBC将与数据库建立连接。

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

https://stackoverflow.com/questions/61461879

复制
相关文章

相似问题

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