首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MyEclipse 連接 MySQL 資料庫完整配置指南:從驅動安裝到測試代碼

     編輯:MySQL 資料庫相關知識

環境準備

  • JDK 8+、Tomcat 8/9、MyEclipse 2017+
  • MySQL 5.6/5.7/8.0 已安裝並啟動

1. 獲取 JDBC 驅動

  • 官網:MySQL Connector/J
  • 下載 mysql-connector-java-.jar(Platform Independent)
  • 或 Maven:<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>

2. 專案導入驅動

  • Java 專案:建立 lib/ 目錄 → 放入 jar → 右鍵 Build Path → Add to Build Path
  • Web 專案:放入 WebRoot/WEB-INF/lib/(自動生效)
  • Maven 專案:pom.xml 依賴即可,無需手動放 jar

3. JDBC 核心流程(標準 6 步)

  1. 載入驅動:Class.forName("com.mysql.cj.jdbc.Driver")(8.0+)或 com.mysql.jdbc.Driver(5.x)
  2. 建立連線:DriverManager.getConnection(url, user, pass)
  3. 建立 Statement:conn.createStatement() 或 conn.prepareStatement(sql)
  4. 執行 SQL:executeQuery() / executeUpdate()
  5. 處理結果集:ResultSet.next() + getXxx()
  6. 關閉資源:rs.close() → stmt.close() → conn.close()(逆序,建議 try-with-resources)

4. 連線 URL 參數詳解

jdbc:mysql://127.0.0.1:3306/mydb?
  useUnicode=true&
  characterEncoding=UTF-8&
  serverTimezone=Asia/Shanghai&
  useSSL=false&
  allowPublicKeyRetrieval=true&
  autoReconnect=true&
  failOverReadOnly=false
  • serverTimezone:8.0+ 必填,避免時區異常
  • useSSL=false:開發環境關閉 SSL 降低握手延遲
  • allowPublicKeyRetrieval=true:配合 caching_sha2_password 允許獲取公鑰

5. 完整測試代碼

package com.example.db;

import java.sql.*;

public class MySQLTest {
    public static void main(String[] args) {
        String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false";
        String user = "root";
        String pass = "123456";

        String sql = "SELECT id, name, description FROM _test";

        try (Connection conn = DriverManager.getConnection(url, user, pass);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql)) {

            Class.forName("com.mysql.cj.jdbc.Driver"); // 8.0+ 可省略(SPI 自動載入)

            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String desc = rs.getString("description");
                System.out.printf("%d %s %s%n", id, name, desc);
            }
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
            System.out.println("連線失敗:" + e.getMessage());
        }
    }
}

6. PreparedStatement 防注入範例

String sql = "SELECT * FROM users WHERE email = ? AND status = ?";
try (PreparedStatement ps = conn.prepareStatement(sql)) {
    ps.setString(1, "test@example.com");
    ps.setInt(2, 1);
    try (ResultSet rs = ps.executeQuery()) {
        // ...
    }
}

常見錯誤排查

錯誤原因解決
ClassNotFoundException驅動 jar 未在 classpath檢查 Build Path / WEB-INF/lib / Maven 依賴
Communications link failureIP/埠/防火牆/服務未啟動telnet 測試 3306、檢查 bind-address
Public Key Retrieval is not allowed8.0+ caching_sha2_passwordURL 加 allowPublicKeyRetrieval=true 或改用 mysql_native_password
Zero date value prohibited資料含 0000-00-00URL 加 zeroDateTimeBehavior=CONVERT_TO_NULL

掌握標準流程 + 關鍵 URL 參數,MyEclipse 連 MySQL 零障礙。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved