更新了MySQL8.0,一些JDBC 的操作与之前并不相同,这里做个简单的说明;
第一,加载驱动类
以前
Class.forName("com.mysql.jdbc.Driver");
现在的写法
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动类
第二,创建Connection对象的时候
以前
jdbc:mysql://localhost:3306/testjdbc
现在,必须加上useSSL和serverTimezone
首先解释一下useSSL
SSL (Secure Socket Layer)是Netscape所研发用保障Internet数据传输安全利用数据加密(Encryption)技术确保数据网络。传输程截取及窃听目前般通用规格40 bit安全标准美则已推128 bit更高安全标准限制境要3.0版本I.E.或Netscape浏览器即支持SSL。
就是,通俗的解释一下,就是个加密手段,可以选择加密或者不加密
useSSL=false,或者useSSL=true
扫描二维码关注公众号,回复:
5972924 查看本文章
其次serverTimezone,这是时区的意思,一般设置成Asia/Shanghai,不知道为啥Beijing就不行
serverTimezone=Asia/Shanghai
jdbc:mysql://localhost:3306/testjdbc?useSSL=false&serverTimezone=Asia/Shanghai
不同的关键字之间用?和&连接
插入一段代码进行测试:
package com.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class test01 {
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动类
Connection conn;
String DB_URL="jdbc:mysql://localhost:3306/testjdbc?useSSL=false&serverTimezone=Asia/Shanghai";
//testjdbc是数据库的名字
try {
conn = DriverManager.getConnection(DB_URL,"root","jianghe2018");
//建立连接
System.out.println(conn);//打印对象,看是否建立成功
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
打印这个对象
运行的结果