1、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver
2、MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显式关闭。
jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=UTC
3、 8.0版本的mysql数据的连接 与 5.0的有所不同,下面直接贴出 8.0版本应该有的 jdbc驱动连接,还有 mysql 的jdbc jar包要8.0以上的
<!-- mysql驱动包依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency>
配置文件:
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=localhost:3306/数据库名?useSSL=false&serverTimezone=UTC jdbc.username=root jdbc.password=root
4.测试连接是否成功:
public class Test { private static Test JDBCUtlTool; public static Connection getConnection(){ String driver="com.mysql.cj.jdbc.Driver"; //获取mysql数据库的驱动类 String url="jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; //连接数据库(test是数据库名) String name="";//连接mysql的用户名 String pwd="";//连接mysql的密码 try{ Class.forName(driver); Connection conn=DriverManager.getConnection(url,name,pwd);//获取连接对象 return conn; }catch(ClassNotFoundException e){ e.printStackTrace(); return null; }catch(SQLException e){ e.printStackTrace(); return null; } } public static void closeAll(Connection conn,PreparedStatement ps,ResultSet rs){ try{ if(rs!=null){ rs.close(); } }catch(SQLException e){ e.printStackTrace(); } try{ if(ps!=null){ ps.close(); } }catch(SQLException e){ e.printStackTrace(); } try{ if(conn!=null){ conn.close(); } }catch(SQLException e){ e.printStackTrace(); } } public static void main(String[] args) throws SQLException { Connection cc= getConnection(); if(!cc.isClosed()) System.out.println("Succeeded connecting to the Database!"); Statement statement = cc.createStatement(); String sql = "select * from tb_user"; ResultSet rs = statement.executeQuery(sql); while(rs.next()) { System.out.println(rs.getString("id")+""); } } }
原文:https://www.cnblogs.com/xiejn/p/11892755.html