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 mysql-connector-java 8.0.11
配置文件:jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=localhost:3306/数据库名?useSSL=false&serverTimezone=UTCjdbc.username=rootjdbc.password=root
4.测试连接是否成功:
packageutil;
importjava.sql.Connection;importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;importjava.sql.SQLException;
importjava.sql.Statement;publicclassTest{@SuppressWarnings("unused")privatestaticTest JDBCUtlTool;publicstaticConnectiongetConnection(){
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);// 获取连接对象returnconn;
}catch(ClassNotFoundException e) {
e.printStackTrace();returnnull;
}catch(SQLException e) {
e.printStackTrace();returnnull;
}
}
publicstaticvoidcloseAll(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();
}
}publicstaticvoidmain(String[] args)throwsSQLException{
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") +"");
}
}
}