MySQL8.0 的JDBC操作

更新了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

其次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();
		}
		
	}

}

打印这个对象

运行的结果

猜你喜欢

转载自blog.csdn.net/weixin_41066584/article/details/87391226
今日推荐