原始碼問題
提供的 ConnDB 類別僅有骨架,關鍵方法如 getStatement、getResultSet、關閉資源等皆為空實作,無法直接使用。
完整可用的 JDBC 工具類範例
以下展示一個支援連線池、事務控制、參數化查詢、結果映射的完整實作(節錄自實際專案):
public class DBSchema implements DBAction {
private DBInfo info;
private Connection connection;
private PreparedStatement statement;
private ResultSet resultset;
private Logger logger = Logger.getLogger(DBSchema.class);
// 開啟事務
public void openTransaction() throws Exception {
Class.forName(info.getDriver());
connection = DriverManager.getConnection(info.getUrl(), info.getUser(), info.getPassword());
connection.setAutoCommit(false);
}
// 提交/回滾
public void commitTransaction() throws Exception { connection.commit(); close(); }
public void rollbackTransaction() throws Exception { connection.rollback(); close(); }
// 參數化查詢回傳 List
關鍵改進點
- 使用
PreparedStatement 防 SQL 注入。
- 統一資源關閉邏輯,避免洩漏。
- 提供事務控制、分頁查詢、批次操作等高階功能。
- 整合 Log4j 記錄 SQL 及參數,利於除錯。
建議
實際專案建議採用成熟框架(如 HikariCP + MyBatis/JdbcTemplate),減少自行造輪子的維護成本。