首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

使用 Eclipse 連接 SQL Server 2005 實現 Java 資料庫 CRUD 操作完整教程

     編輯:程式設計綜合問答

專案概述

本文展示如何在 Eclipse IDE 中使用 JDBC 連接 Microsoft SQL Server 2005,構建一個完整的 Swing 圖形介面應用程式,實現學生資料表的增、刪、改、查(CRUD)操作。專案包含資料庫連接、表格顯示、彈出對話框輸入等核心功能。

環境準備

  • JDK 1.6+ / Eclipse IDE
  • SQL Server 2005 資料庫(已建立 XSGL 資料庫與 s 表)
  • SQL Server JDBC 驅動程式(sqljdbc.jar)已加入專案建置路徑

核心程式碼架構

1. 主視窗類別設計

public class Data extends JFrame implements ActionListener {
    // 元件宣告
    JButton add, select, del, update;
    JTable table;
    Object[][] body = new Object[50][5];
    String[] fields = {"sno","sname","sex","age","dept"};
    Connection conn;
    Statement st;
    ResultSet rs;
    JTabbedPane tp;
    // ...
}

2. 資料庫連線初始化

public void connection() {
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String url = "jdbc:sqlserver://localhost:1433;DatabaseName=XSGL";
        conn = DriverManager.getConnection(url, "sa", "123456");
        st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    } catch (Exception ex) {
        System.out.print("連接錯誤!");
    }
}

注意:驅動類別名稱需確認拼寫正確(原代碼中 "SQLServerDrive" 缺少尾部 "r")。

3. 事件處理與業務邏輯

透過 actionPerformed 方法分發按鈕事件:

  • 新增:彈出對話框輸入學號、姓名、性別、年齡、專業,執行 INSERT 語句
  • 查詢:執行 SELECT * FROM S 並刷新 JTable
  • 修改:選中行後彈出對話框修改欄位,執行 UPDATE 語句
  • 刪除:確認後執行 DELETE 語句並刷新

4. 表格資料填充工具方法

public void filltable(String sql) {
    try {
        // 清空緩存陣列
        for (int x = 0; x < body.length; x++) Arrays.fill(body[x], null);
        int i = 0;
        rs = st.executeQuery(sql);
        while (rs.next()) {
            body[i][0] = rs.getString("SNO");
            body[i][1] = rs.getString("SNAME");
            body[i][2] = rs.getString("SEX");
            body[i][3] = rs.getString("AGE");
            body[i][4] = rs.getString("DEPT");
            i++;
        }
        this.repaint();
    } catch (SQLException ex) { ex.printStackTrace(); }
}

常見問題與優化建議

參數化查詢防止 SQL 注入

原代碼直接拼接 SQL 字串,存在注入風險。建議改用 PreparedStatement:

String sql = "INSERT INTO s VALUES (?, ?, ?, ?, ?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, nsno);
pst.setString(2, nName);
// ...
pst.executeUpdate();

資源管理與關閉

在 finally 區塊或使用 try-with-resources (JDK 7+) 確保 Connection、Statement、ResultSet 正確關閉,避免連線洩漏。

介面優化

  • 使用 DefaultTableModel 替代二維陣列,動態調整行數
  • 新增輸入驗證(如學號唯一性、年齡數值範圍)
  • 採用連線池(如 HikariCP)提升併發效能

總結

此範例展示了 Java Swing 搭配 JDBC 實現桌面端資料庫操作的基本模式。實際專案中建議採用分層架構(DAO/Service/UI),引入連線池與 ORM 框架(如 MyBatis/Hibernate)提升可維護性與擴展性。

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