MySQL8.0以上的数据库连接

转载自:https://blog.csdn.net/yangdan1025/article/details/80591012

工具
mysql-connector-java-8.0.11.jar
eclipse
mysql-8.0.11

  1. jdbc 8.0.11下载
    下载网址:https://dev.mysql.com/downloads/connector/j/
  2. eclipse加载jdbc
  3. java连接数据库读取数据
    java连接数据库代码:
package mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class connect {
    public static void main(String[] args){
    // 加载数据库驱动  com.mysql.jdbc.Driver
        String driver = "com.mysql.cj.jdbc.Driver";
        // 获取mysql连接地址
       String url = "jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC";
        // 数据名称
       String username = "root";
        // 数据库密码
        String password = "1025";
        // 获取一个数据的连接
        Connection conn = null;
        // 获取连接的一个状态
        try{
            Class.forName(driver);
            //getConnection()方法,连接MySQL数据库!
            conn=DriverManager.getConnection(url,username,password);
            if(!conn.isClosed())
            System.out.println("数据库连接成功!");
             //创建statement类对象,用来执行SQL语句!
            Statement Statement=conn.createStatement();
            //要执行的SQL语句
            String sql="select * from grade" ;
            //ResultSet类,用来存放获取的结果集!
            ResultSet rs=Statement.executeQuery(sql);
             System.out.println("-------------------------------");
             System.out.println("执行结果如下所示:");  
             System.out.println("-------------------------------");  
             System.out.println("学号" + "\t" + "姓名"+"\t"+"数学成绩"+"\t"+"语文成绩");  
             System.out.println("-------------------------------");  
             String id=null;
             String name=null;
             String math=null;
             String chinese=null;
             while(rs.next()){
                //获取‘学号’这列数据
                 id=rs.getString("学号");
                 //获取‘姓名’这列数据
                name=rs.getString("姓名");
                //获取‘数学成绩’这列数据
                math=rs.getString("数学成绩");
                //获取‘语文成绩’这列数据
                chinese=rs.getString("语文成绩");
                //输出结果
                System.out.println(id+"\t"+name+"\t"+math+"\t"+chinese);
             }
             rs.close();
             conn.close();
         }
         catch(ClassNotFoundException e){
             //数据库驱动类异常处理
        System.out.println("数据库驱动加载失败!");
        e.printStackTrace();
         }
        catch(SQLException e1){
        //数据库连接失败异常处理
         e1.printStackTrace();
        }
        catch(Exception e2){
        e2.printStackTrace();
        }
        finally{
             System.out.println("-------------------------------");  
            System.out.println("数据库数据获取成功!");
        }
        }
        }

后注:
若连接MySQL数据库中出现:Public Key Retrieval is not allowed(不允许解锁公钥)
解决方法:
源代码:

String url = "jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC";

改为:

String url = "jdbc:mysql://localhost:3306/test&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";

也就是在其后添加:

allowPublicKeyRetrieval=true

你可能感兴趣的:(MySQL8.0以上的数据库连接)