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

封裝 JDBC 基本操作的實用工具類

     編輯:Java 相關知識

前言

本文介紹一個名為 odbc 的 JavaBean,封裝了資料庫連線、查詢、更新、分頁、中文編碼轉換、HTML 過濾等常用功能,適合快速開發資料庫應用。

類別架構概覽

package bbs;

import java.sql.*;
import java.lang.*;
import java.io.*;
import java.util.*;
import sun.io.*;

public class odbc {
    Connection sqlCon;
    ResultSet rstSql;
    Statement stmS;
    String strCon;
    String strSql;
    boolean status;
    long rowcount;
    int page;
    int pagesize;
    long pagecount;
    long firstrecord;
    // ... 方法定義
}

核心功能方法

1. 資料庫連線

  • connect():使用預設 DSN JSPbbs 連線。
  • connect(String conName, String username, String passWord):自訂連線參數。

皆採用 sun.jdbc.odbc.JdbcOdbcDriver,成功回傳 true,失敗回傳 false 並設定 status。

2. 執行更新操作

public boolean execute(String s) {
    // 執行 INSERT、UPDATE、DELETE 等
    this.stmS = this.sqlCon.createStatement();
    this.stmS.executeUpdate(s);
    return true;
}

3. 查詢與資料導航

  • query(String s):執行查詢,計算總筆數 rowcount,重新取得 ResultSet。
  • nextrecord():游標前移。
  • getstring(String s)、getint(String s):依欄位名取得字串或整數。
  • getrowcount()、getpagecount():取得總筆數與總頁數。

4. 分頁功能

public boolean setpage(int size, int no) {
    this.pagesize = size;
    this.page = no;
    this.pagecount = Math.round((this.rowcount - 1) / this.pagesize) + 1;
    this.firstrecord = this.pagesize * (this.page - 1);
    // 移動游標至該頁首筆
    for (int i = 0; i < this.firstrecord; i++) {
        if (!this.nextrecord()) break;
    }
    return true;
}

5. 中文編碼轉換

  • readChinese(String s):從資料庫讀取時,將 GB2312 轉為 ISO-8859-1。
  • writeChinese(String s):寫入資料庫前,將字串轉為 GB2312 位元組陣列再還原字串。

6. 字串搜尋與取代

  • replace(String con, String tag, String rep):全域取代。
  • listValue(String con, String tag):依分隔符分割回傳 Vector。

7. HTML/ SQL 特殊字元過濾

public String Htmlencode(String s) {
    String temp = replace(s, "<", "<");
    temp = replace(temp, ">", ">");
    temp = replace(temp, "'", "'");
    temp = replace(temp, "\"", """);
    temp = replace(temp, " ", " ");
    temp = replace(temp, "\n", "
"); return temp; }

8. 狀態與資源關閉

  • getstatus():回傳上一次操作狀態。
  • close():關閉 Connection、ResultSet、Statement。

使用建議

此類別雖功能豐富,但採用較舊的 JDBC-ODBC Bridge 且未使用連線池,適合學習或小型專案。生產環境建議改用 DataSource 與連線池(如 HikariCP),並採用 PreparedStatement 防止 SQL 注入。

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