JDBC連接Mysql8.0失敗解決方法


說來也慚愧,雖說裝了mysql8,我卻還在嘗試用N年前鏈接Mysql5的JDBC做嘗試,腦子着實有問題。

一.加載JAR包:

在你的項目中新建一個lib的文件夾,將下載好的jar包復制到lib文件夾中,右鍵點擊jar包->Buid Path->Add Buid Path.

 

二.5.0.X版本與8.0.X版本的區別:

1. 5.0.X版本連接的驅動地址為:"com.mysql.jdbc.Driver",而8.0.X版本的更改為:"com.mysql.cj.jdbc.Driver"

2. 建立連接時url增加了一些參數: 5.0.X版本的url為String url = "jdbc:mysql://localhost:3306/student"

而8.0.X版本的需要在后面加上一串字母變為:String url = "jdbc:mysql://local:3306/student?&useSSL=false&serverTimezone=UTC"

 

三.連接數據庫讀取數據

用Navicat Premium中建一張數據表


java連接數據庫代碼:
package mysql.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 
 * @author: Doomed
 * @date: 2018/7/20
 * @place: usth
 *
 */
public class MysqlDemo {
    public static void main(String[] args){
    // 加載數據庫驅動  com.mysql.jdbc.Driver
        String driver = "com.mysql.cj.jdbc.Driver";
        // 獲取mysql連接地址
       String url = "jdbc:mysql://localhost/student?&useSSL=false&serverTimezone=UTC";
        // 數據名稱
       String username = "root";
        // 數據庫密碼
        String password = "123456";
        // 獲取一個數據的連接
        Connection conn = null;
        // 獲取連接的一個狀態
        try{
            Class.forName(driver);
            //getConnection()方法,連接MySQL數據庫!
            conn=DriverManager.getConnection(url,username,password);
            if(!conn.isClosed())
            System.out.println("數據庫連接成功!");
             //創建statement類對象,用來執行SQL語句!
            Statement Statement=conn.createStatement();
            //要執行的SQL語句
            String sql="select * from info" ;
            //ResultSet類,用來存放獲取的結果集!
            ResultSet rs=Statement.executeQuery(sql);
             System.out.println("-------------------------------");
             System.out.println("執行結果如下所示:");  
             System.out.println("-------------------------------");  
             System.out.println("學號" + "\t" + "姓名"+"\t");  
             System.out.println("-------------------------------");  
             String id=null;
             String name=null;
             while(rs.next()){
                //獲取‘學號’這列數據
                 id=rs.getString("number");
                 //獲取‘姓名’這列數據
                name=rs.getString("name");
                //輸出結果
                System.out.println(id+"\t"+name+"\t");
             }
             rs.close();
             conn.close();
         }
         catch(ClassNotFoundException e){
             //數據庫驅動類異常處理
        System.out.println("數據庫驅動加載失敗!");
        e.printStackTrace();
         }
        catch(SQLException e1){
        //數據庫連接失敗異常處理
         e1.printStackTrace();
        }
        catch(Exception e2){
        e2.printStackTrace();
        }
        finally{
             System.out.println("-------------------------------");  
            System.out.println("數據庫數據獲取成功!");
        }
        }
}

 

執行結果:


 

    (總結一句話:新版的就是事多)

 
原文鏈接:https://blog.csdn.net/sinat_41721615/article/details/84346249

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM