JDBC连接错误,找不到驱动程序、找不到适合的驱动程序、无法加载连接类、不建议建立SSL连接而不需要服务器的身份验证、系统时间错误 您所在的位置:网站首页 jdbc运行流程 JDBC连接错误,找不到驱动程序、找不到适合的驱动程序、无法加载连接类、不建议建立SSL连接而不需要服务器的身份验证、系统时间错误

JDBC连接错误,找不到驱动程序、找不到适合的驱动程序、无法加载连接类、不建议建立SSL连接而不需要服务器的身份验证、系统时间错误

2023-08-10 07:43| 来源: 网络整理| 查看: 265

JDBC连接数据库问题汇总 一.找不到驱动:Exception in thread “main” java.lang.ClassNotFoundException: com.mysql.cj.Driver

解决方法:

首先去看一下自己注册驱动的语句有没有写错,比如这样的: 在这里插入图片描述 这里用的驱动版本为8.0.11,从mysql-connector-java 5版本后jdbc.driver已经失效,因此使用新版driver,路径应该为:com.mysql.cj.jdbc.Driver,因此修改程序为: //2.注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 检查导包: 导包步骤为:在这里插入图片描述 在这里插入图片描述

导入完成后如果还不可以,那么直接去Modules里添加路径:

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 一般这样就可以解决啦。

二、没有找到适合jdbc的驱动程序 Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql:localhost:3306//student at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) at cn.itcast.jdbc.jdbcdemo1.main(jdbcdemo1.java:13)

原因:还是语句错误,忘了加“//”

在这里插入图片描述

三、线程“主”java.sql中的异常。SQLNonTransientConnectionException:无法加载连接类,原因是底层异常:com.mysql.cj.异常。错误argumentexception:数据库URL格式错误,无法解析主URL部分。 Exception in thread "main" java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the main URL sections.

多加了一个“/”:

在这里插入图片描述

4.不建议建立SSL连接而不需要服务器的身份验证: Wed Oct 21 20:45:28 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

首先翻译一下: 警告:不建议建立SSL连接而不需要服务器的身份验证。根据MySQL 5.5.45 +、5.626+和5.7.6+的要求,如果没有设置显式选项,默认情况下必须建立SSL连接。对于不使用SSL的现有应用程序,ValuyServer证书属性设置为“false”。您需要通过设置USESL= false来显式禁用SSL,或者设置USELS=真,并为服务器证书验证提供信任存储。

**于是,解决方法:正如warn中所说的,需要在建立连接时,显式声明不验证SSL, 设置url即可!

//3.获取数据库连接对象 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?verifyServerCertificate=false&useSSL=false", "root", "a980420165");

即在连接mysql的url上加上参数: ?verifyServerCertificate=false&useSSL=false**

5.在上一步中出现了不需要服务器的身份验证的问题,出现这种问题时往往配套地出现以下问题: Exception in thread "main" java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

该问题为该错误为系统时间错误

解决方法:在url后再加上serverTimezone=GMT%2B8即可

//3.获取数据库连接对象 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?verifyServerCertificate=false&useSSL=false&serverTimezone=GMT%2B8", "root", "a980420165");


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有