JDBC新特性com.mysql.jdbc.Driver与com.mysql.cj.jdbc.Driver的区别

转载:https://www.cnblogs.com/qubo520/p/8483595.html

概述:com.mysql.jdbc.Driver是mysql-connector-java 5中的,而com.mysql.cj.jdbc.Driver是mysql-connector-java 6中的。


1、JDBC连接Mysql5需用com.mysql.jdbc.Driver,例如:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=root


2、JDBC连接Mysql6需用com.mysql.cj.jdbc.Driver,同时需要指定时区serverTimezone,例如:
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=root


3、设定时区时,serverTimezone=UTC比中国时间早8个小时,若在中国,可设置serverTimezone=Shanghai或者serverTimezone=Hongkong,例如:
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=Shanghai&?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=root


4、如果mysql-connector-java用的6.0以上的,如:
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>

但是你的driver用的还是com.mysql.jdbc.Driver就会报错,此时需要把com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver。

------------------------------------------------------------------------------------------

import java.sql.*;
import com.mysql.cj.exceptions.RSAException;
public class TestMysqlConnection {

    public static void main(String[] args) {
        Connection conn=null;
        Statement smt=null;
        ResultSet rs=null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            try {
                conn=DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/mydata?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&user=root&password=gogogo");
                smt=conn.createStatement();
                rs=smt.executeQuery("select * from dept");
                while(rs.next()) {
                    System.out.println(rs.getInt(1));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }finally {
            
                try {
                    if(rs!=null) {
                        rs.close();
                    }
                    if(smt!=null) {
                        rs.close();
                    }
                    if(conn!=null) {
                        conn.close();
                    }
                }catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }
 

猜你喜欢

转载自blog.csdn.net/u010731020/article/details/81254238