MySQL8.0数据库连接问题
Java连接MySQL8.0以上版本数据库方式:
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.测试连接是否成功:
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Test { @SuppressWarnings("unused") private static Test JDBCUtlTool; public static Connection getConnection() { String driver = "com.mysql.cj.jdbc.Driver"; // 获取mysql数据库的驱动类 String url = "jdbc:mysql://localhost:3306/zhcs?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8"; // 连接数据库(zhcs是数据库名) //String url="jdbc:mysql://localhost:3306/zhcs?useSSL=true&serverTimezone=GMT&characterEncoding=UTF-8"; String name = "root";// 连接mysql的用户名 String pwd = "123456";// 连接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 t_r_webfun"; ResultSet rs = statement.executeQuery(sql); while (rs.next()) { System.out.println(rs.getString("F_ID") + ""); } } }