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

實用 JavaBean 範例:資料庫操作、分頁與工具方法整合

     編輯:Java 相關知識

功能完整的 JavaBean 實作解析

本文提供一個整合資料庫連線、CRUD 操作、分頁邏輯、日期格式化、HTML 編碼與 UBB 標籤轉換的實用 JavaBean 完整原始碼。此類別展示了早期 Java Web 開發中常見的「萬能工具類」設計模式,雖然現代框架已將這些功能模組化,但理解其內部運作對維護舊系統或學習基礎架構仍有價值。

核心功能模組

1. 資料庫連線管理

  • 建構子載入 MySQL JDBC 驅動(org.gjt.mm.mysql.Driver,舊版驅動類別名)並建立連線
  • 提供 query(String sql) 執行查詢,回傳 ResultSet
  • 提供 update(String sql) 執行增刪改
  • 分別提供 closestmt()、closeconn() 關閉 Statement 與 Connection

注意:此實作未使用連線池,且 Exception 僅列印錯誤訊息未拋出,生產環境需改進錯誤處理與資源釋放機制(建議使用 try-with-resources 或 finally 區塊確保關閉)。

2. 中文編碼轉換 toChinese(String s)

public String toChinese(String s) {
    if (s == null) return null;
    try {
        return new String(s.getBytes("gb2312"), "ISO8859-1");
    } catch (Exception e) {}
    return null;
}

早期解決 JSP 頁面(ISO-8859-1)與資料庫(GB2312)編碼不一致的常見手法。現代專案建議全端統一使用 UTF-8,避免此類轉換。

3. 分頁邏輯 page1(...)

根據總筆數、每頁筆數、顯示頁碼數、起始位置等參數,動態產生分頁導航 HTML 連結(包含首頁、上一頁、頁碼、下一頁、末頁)。邏輯包含總頁數計算、當前頁碼區間判斷、URL 參數組裝(page、start、搜尋條件 search、目標檔名 filename)。

4. 日期時間工具

  • GetPath():回傳 "yyyy-MM" 格式,常用於按月份建立目錄或檔名
  • strNowtime():回傳 "yyyy-MM-dd hh:mm:ss" 完整時間戳記

5. HTML 編碼與 UBB 標籤轉換

  • HTMLEncode(String Str):將 <、>、換行轉為 &lt;、&gt;、<BR>
  • ebbReplace(String Str, String oldStr, String newStr):通用字串替換實作
  • LCReplace(String Str, String BStr, String EStr, String ReStr):UBB 標籤解析,支援巢狀替換(如 [b]粗體[/b] → <b>粗體</b>),使用 $lichao$ 作為佔位符

現代化改造建議

  1. 資料存取層分離:採用 DAO 模式或 MyBatis/JPA 等 ORM 框架
  2. 連線池:使用 HikariCP、Druid 等高效能連線池
  3. 分頁標準化:使用 PageHelper 或資料庫原生 LIMIT/OFFSET
  4. 編碼統一:全端 UTF-8,移除手動編碼轉換
  5. 模板引擎:使用 Thymeleaf、FreeMarker 替代字串拼接 HTML
  6. 安全性:防止 SQL Injection(使用 PreparedStatement)、XSS(輸出編碼)

小結

此 JavaBean 展示了早期 Java Web 開發「大而全」的工具類風格。雖然符合當時快速開發需求,但違反單一職責原則,難以測試與維護。現代開發應遵循模組化、分層架構,將各功能拆分為獨立元件與服務。

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