首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Eclipse 連接 MySQL 實戰:JDBC 驅動配置與 CRUD 範例

     編輯:MySQL 綜合教學

從零開始:Eclipse 專案整合 MySQL JDBC 完整步驟

網路上 JDBC 教學多不夠詳細,本文記錄一次完整的「下載工具 → 建立資料庫 → 導入驅動 → 撰寫程式 → 驗證連線 → CRUD 封裝」實戰流程,供日後快速參考。

準備工作

工具用途下載連結
WAMP整合 Apache + MySQL + phpMyAdmin百度網盤
MySQL Connector/JJDBC 官方驅動百度網盤
Eclipse IDEJava 開發環境(任意版本)官網免費下載

步驟 1:建立測試資料庫與資料表

啟動 WAMP,瀏覽器開啟 https://localhost/phpmyadmin,執行 SQL:

CREATE DATABASE test;
USE test;
CREATE TABLE user (
  name VARCHAR(20),
  password VARCHAR(20)
);
INSERT INTO user VALUES ('huzhiheng', '123456');

步驟 2:Eclipse 專案導入 JDBC 驅動

  1. 右鍵專案 → Build Path → Add External Archives...
  2. 選擇下載的 mysql-connector-java-x.x.xx-bin.jar → 確定
  3. 專案 Referenced Libraries 出現該 jar 即成功

步驟 3:撰寫測試主程式

import java.sql.*;

public class MysqlJdbc {
    public static void main(String[] args) {
        // 1. 載入驅動
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Success loading Mysql Driver!");
        } catch (Exception e) {
            System.out.print("Error loading Mysql Driver!");
            e.printStackTrace();
        }

        // 2. 建立連線、查詢、關閉資源
        try (Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test", "root", "");
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM user")) {

            System.out.println("Success connect Mysql server!");
            while (rs.next()) {
                System.out.println(rs.getString("name"));
            }
        } catch (Exception e) {
            System.out.print("get data error!");
            e.printStackTrace();
        }
    }
}

預期輸出:

Success loading Mysql Driver!
Success connect Mysql server!
huzhiheng

步驟 4:常用 CRUD 封裝範例

以下方法展示新增、刪除、查詢、更新的典型寫法(實際專案建議使用 PreparedStatement 防止 SQL 注入):

新增

public void add(String name, String character, String introduce) throws SQLException {
    String sql = "INSERT INTO game(gamename, gamecharacter, gameintroduce) VALUES (?, ?, ?)";
    try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, "");
         PreparedStatement ps = conn.prepareStatement(sql)) {
        ps.setString(1, name);
        ps.setString(2, character);
        ps.setString(3, introduce);
        ps.executeUpdate();
    }
}

刪除

public void delete(String name) throws SQLException {
    String sql = "DELETE FROM game WHERE gamename = ?";
    try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, "");
         PreparedStatement ps = conn.prepareStatement(sql)) {
        ps.setString(1, name);
        ps.executeUpdate();
    }
}

查詢

public void query(String name, JLabel showName, JLabel character, JLabel introduce) throws SQLException {
    String sql = "SELECT gamename, gamecharacter, gameintroduce FROM game WHERE gamename = ?";
    try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, "");
         PreparedStatement ps = conn.prepareStatement(sql)) {
        ps.setString(1, name);
        try (ResultSet rs = ps.executeQuery()) {
            if (rs.next()) {
                showName.setText(rs.getString("gamename"));
                character.setText(rs.getString("gamecharacter"));
                introduce.setText(rs.getString("gameintroduce"));
            }
        }
    }
}

更新

public void update(String name, String character, String introduce) throws SQLException {
    String sql = "UPDATE game SET gamecharacter = ?, gameintroduce = ? WHERE gamename = ?";
    try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, "");
         PreparedStatement ps = conn.prepareStatement(sql)) {
        ps.setString(1, character);
        ps.setString(2, introduce);
        ps.setString(3, name);
        ps.executeUpdate();
    }
}

最佳實踐提醒

  • 生產環境務必使用 PreparedStatement 替代字串拼接,防止 SQL 注入。
  • 資料庫連線、Statement、ResultSet 都應在 try-with-resources 中自動關閉。
  • 連線參數(URL、帳號、密碼)應外部化至設定檔,不要寫死在程式碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved