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

簡易 JDBC JavaBean 範例:資料庫連線、查詢與更新封裝

     編輯:J2EE

前言

此範例示範將 JDBC 連線、查詢、更新操作封裝為一個簡單的 JavaBean,供 JSP 或 Servlet 呼叫,達成資料存取邏輯與展示層分離。

程式碼 - JSP2Bean.java


public class JSP2Bean {
    private String sample = "Start value";
    private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    private String url = "jdbc:odbc:untitled1";
    private Connection conn = null;
    private ResultSet rs = null;

    // Simple Property
    public String getSample() { return sample; }
    public void setSample(String v) { if (v != null) sample = v; }

    public JSP2Bean() {
        try { Class.forName(driver); } 
        catch (ClassNotFoundException e) { System.err.println("Driver load error: " + e); }
    }

    // 執行查詢,回傳 ResultSet (呼叫端需自行關閉)
    public ResultSet executeQuery(String sql) {
        try {
            conn = DriverManager.getConnection(url);
            Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            rs = stmt.executeQuery(sql);
        } catch (SQLException ex) { System.err.println("Query error: " + ex); }
        return rs;
    }

    // 執行更新 (INSERT/UPDATE/DELETE)
    public void executeUpdate(String sql) {
        try {
            conn = DriverManager.getConnection(url);
            Statement stmt = conn.createStatement();
            stmt.executeUpdate(sql); // 注意:原碼誤用 executeQuery,此處修正
        } catch (SQLException ex) { System.err.println("Update error: " + ex); }
    }
}

使用方式 (JSP 範例)


<%@ page import="untitled1.JSP2Bean" %>
<%
    JSP2Bean bean = new JSP2Bean();
    ResultSet rs = bean.executeQuery("SELECT * FROM news");
    while (rs.next()) {
        out.println(rs.getString("title") + "<br>");
    }
    rs.close();
%>

改進建議 (生產環境必備)

  • 連線池:改用 DataSource (JNDI) 或 HikariCP/DBCP,避免每次新建連線。
  • 資源關閉:使用 try-with-resources (Java 7+) 確保 Connection/Statement/ResultSet 正確關閉。
  • 例外處理:拋出自訂例外而非吞沒列印,讓上層決定錯誤頁面導向。
  • SQL 注入防護:改用 PreparedStatement 參數化查詢。
  • 執行緒安全:Connection、Statement、ResultSet 皆非執行緒安全,不可作為 Bean 執行個體欄位共用;應在方法內建立區域變數。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved