zoukankan      html  css  js  c++  java
  • 使用8.0版本jdbc驱动连接数据库操作

    转自:https://blog.csdn.net/qq_41734885/article/details/80562815

    首先,我居然不能用navicat客户端连接上mysql8.0数据库报1251错误,这个的解决方式已经在我的上一篇博客中解决了。然后我又遇到了java无法连接mysql数据库8.0的问题。

    报错: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.

    Wed May 09 16:25:23 CST 2018 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.

        上面这段报错中加粗的文字很重要,她告诉你mysql8.0和之前版本的区别,首先驱动换了,不是com.mysql.jdbc.Driver而是'com.mysql.cj.jdbc.Driver',此外mysql8.0是不需要建立ssl连接的,你需要显示关闭。最后你需要设置CST。所以我们需要在之前我们熟悉的java连接数据库代码的基础之上改动以下两行代码:

    Class.forName("com.mysql.cj.jdbc.Driver");  
    Class.forName("com.mysql.jdbc.Driver");  
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&serverTimezone=UTC","root","password");  
      conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo","root","password");  
                Class.forName("com.mysql.cj.jdbc.Driver");
    //          Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&serverTimezone=UTC","root","password");
    //            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo","root","password");
    

      

    import java.sql.*;
    public class Main {
        public static  void main(String[]args) throws Exception{
            Class.forName("com.mysql.cj.jdbc.Driver");
           Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC","root","123456");
           String sql1="select * from book";
           PreparedStatement pst=conn.prepareStatement(sql1);
           /*                 查询                       */
           ResultSet rs=pst.executeQuery(sql1);
           while (rs.next()){
               System.out.println(rs.getString("id")+"  "+rs.getString("bookno")+"  "+rs.getString("bookname")+"  "+rs.getString("author"));
           }
           /*                 插入                      */
           String sql2="insert into book(id,bookno,bookname,author,press,price)values(4,'book4','sean4','author4','press4',400)";
              pst.executeUpdate(sql2);
            /*                删除                      */
            String sql3="delete  from book where id=2";
             pst.executeUpdate(sql3);
           /*                 修改                      */
            String sql4="update book set price=500 where id=4";
            pst.executeUpdate(sql4);
           pst.close();
           rs.close();
    
        }
    
    }
  • 相关阅读:
    异步I/O
    path路径操作
    Buffer类
    ES6常用语法
    GitHub上的基本功能与概念
    git的基本命令
    HTML中的表单
    PyCharm的安装以及破解
    HTML中的表格
    HTML中的列表
  • 原文地址:https://www.cnblogs.com/dean-SunPeishuai/p/10140182.html
Copyright © 2011-2022 走看看