JDBC,连接MySQL出错

请问这个问题是什么原因造成的啊,运行的时候就显示出现了这样的错误

img

img

com.mysql.cj.jdbc.Driver

com.mysql.cj.jdbc.Driver 驱动麻烦加一下

【相关推荐】



  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7598990
  • 你也可以参考下这篇文章:JDBC连接MySQL数据库出现的错误及解决方法整理
  • 您还可以看一下 曹领雄老师的使用JDBC操作MySql数据库课程中的 修改学生信息(信息修改的通用方法)小节, 巩固相关知识点
  • 除此之外, 这篇博客: JDBC连接mysql中出现的问题中的 然后说一说在连接mysql的时候出现的问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    1. MySQL 5.x 和 MySQL 8.x使用的驱动类不太一样

      Loading class `com.mysql.jdbc.Driver'. 
      This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
       The driver is automatically registered via the SPI and manual loading 
       of the driver class is generally unnecessary.
      

      之前的报错解决之后就找不到了,这里是它大致的报错信息。

      这段话的大致意思就是 com.mysql.jdbc.Driver这个驱动类在MySQL 8.0的版本中已经更新了,现在加载驱动的时候需要使用com.mysql.cj.jdbc.Driver这个驱动类。

      当然了,我试过,使用 com.mysql.jdbc.Driver这个驱动类仍然可以连接数据库,但是之后会出现什么问题尚且不太清楚,可能会打开一个潘多拉魔盒,也可能会无缝衔接。。。。

    2. MySQL时区出现了问题
      问题:The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone…

      具体报错信息已经失踪

      解决方法:更改MySQL时区
      命令:

      show variables like '%time_zone%';
      set global time_zone='+8:00';
      

    最后,附上连接数据库的代码:

    package com.stu.jdbc;
    
    import java.sql.*;
    
    public class JdbcTest {
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
    
            // 1、加载mysql驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
    
            // 2、连接mysql数据库
            String url = "jdbc:mysql://localhost:3306/stu?useUnicode=true&characterEncoding=utf8&useSSL=true";  // 连接mysql的协议
            String user = "root";    // 数据库的用户名
            String pwd = "root";     // 数据库的密码
            Connection connection = DriverManager.getConnection(url,user,pwd);
    
            if(!connection.isClosed())
                System.out.println("database already connection...........");
            else
                System.out.println("database hasn`t connetction.........");
    
            // 3、得到一个Statement对象,Statement是一个用于执行静态 SQL 语句并返回它所生成结果的对象
            Statement st = connection.createStatement();
    
            // 写SQL语句
            String addSql = "insert into user(username,password) values ('小紫','sdfsd')";
    
            // 执行SQL语句并得到结果
            int i = st.executeUpdate(addSql);
            if(i != 0){
                System.out.println("插入成功");
            }
            
            String selectSql = "select * from stu";
            ResultSet se = st.executeQuery(selectSql);
        }
    }
    
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^