其实就是MySQL版本和配置的区别问题
①com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6及以上版本中的,JDBC连接Mysql6 com.mysql.cj.jdbc.Driver的代码如下:( 需要指定时区serverTimezone)
package connection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DataBaseConnection {
private final String DBDriver ="com.mysql.cj.jdbc.Driver";
private final String DBURL ="jdbc:mysql://localhost:3306/shiyan1?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8";
private final String DBUSER ="root";
private final String DBPASSWORD ="123456";
private Connection conn = null;
public DataBaseConnection(){
try{
Class.forName(DBDriver);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
}
catch(Exception e){ e.printStackTrace(); }
}
public Connection getConnection(){
System.out.println("成功连接数据库!");
return this.conn;
}
public void close() throws SQLException {
this.conn.close();
}
}
②com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,JDBC连接Mysql5 com.mysql.jdbc.Driver的代码如下:
package connection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DataBaseConnection {
private final String DBDriver ="com.mysql.jdbc.Driver";
private final String DBURL ="jdbc:mysql://localhost:3306/shiyan1?useUnicode=true&characterEncoding=UTF-8";
private final String DBUSER ="root";
private final String DBPASSWORD ="123456";
private Connection conn = null;
public DataBaseConnection(){
try{
Class.forName(DBDriver);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
}
catch(Exception e){ e.printStackTrace(); }
}
public Connection getConnection(){
System.out.println("成功连接数据库!");
return this.conn;
}
public void close() throws SQLException {
this.conn.close();
}
}
所以说,JDBC的版本和MySQL版本匹配很重要,以后做这类项目的时候千万要注意!