MySQL8.0版本运用JDBC连接数据库
1. 创建数据库:db_web
2. 编辑DbUtil类
package com.lagou.demo01.Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbUtil {
private static String jdbcName;
private static String dbUrl;
private static String dbUserName;
private static String dbPassword;
/**利用静态代码块进行初始化操作*/
static {
jdbcName = "com.mysql.cj.jdbc.Driver";
dbUrl = "jdbc:mysql://localhost:3306/db_web?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
dbUserName = "root";
dbPassword = "2020260724";
try {
Class.forName(jdbcName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接的方法
*/
public static Connection getConnection() throws SQLException {
Connection con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
return con;
}
/**关闭连接的方法*/
public static void closeConnection(Connection con) throws SQLException {
if(null != con) {
con.close();
}
}
}
注意事项:
如果你用的jar包是mysql-connector-java 5,或者说你用的MySQL是例如MySQL5.7版本。那么配置的是com.mysql.cj.jdbc.Driver的配置就会报java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver这个错误。
如果你用的mysql-connector-java 6,配置的是com.mysql.jdbc.Driver的配置也会出现错误,总之MySQL版本要与其配置对应好。
MySQL6版本以上的,必须配置com.mysql.cj.jdbc.Driver
Class.forName(com.mysql.cj.jdbc.Driver);
另外6版本以上的url路径必须配置如下:
jdbc:mysql://localhost:3306/db_web?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC(必须配置时区等)
8.0的所配jar包为:mysql-connector-java-8.0.11.jar
3. 编辑测试类:DbUtilTest
package com.lagou.demo01.test;
import com.lagou.demo01.Util.DbUtil;
import java.sql.Connection;
import java.sql.SQLException;
public class DbUtilTest {
public static void main(String[] args) {
Connection connection = null;
try {
connection = DbUtil.getConnection();
System.out.println("数据库连接成功!!!");
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
try {
DbUtil.closeConnection(connection);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
总结:
1、MySQL8.0的在JDBC里面要配置jar包:mysql-connector-java-8.0.11.jar
2、加载驱动的方式也有所变化:Class.forName(com.mysql.cj.jdbc.Driver);
3、MySQL Url的格式也略微复杂一些:jdbc:mysql://localhost:3306/db_web?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
如果后面改回5.7版本:
1、改下驱动设置:com.mysql.jdbc.Driver
2、MySQL url的路径:jdbc:mysql://localhost:3306/db_web?characterEncoding=UTF-8
3、mysql-connector-java-8.0.11.jar包改回5.7版本能用的即可