首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Java 使用 Apache Commons DbUtils 簡化 Oracle 資料庫操作

     編輯:Oracle 資料庫基礎

前言

Apache Commons DbUtils 是輕量級 JDBC 封裝庫,核心類 QueryRunner 大幅減少樣板碼(關閉資源、迭代 ResultSet、映射物件)。本文示範搭配 JNDI DataSource 進行新增操作。

Maven 依賴

<dependency>
  <groupId>commons-dbutils</groupId>
  <artifactId>commons-dbutils</artifactId>
  <version>1.7</version> <!-- 或更新版本 -->
</dependency>

程式碼範例

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;

public void insertUser(String username, String password) {
    String sql = "INSERT INTO users(username, password) VALUES (?, ?)";
    Object[] params = { username, password };

    try {
        Context initCtx = new InitialContext();
        DataSource ds = (DataSource) initCtx.lookup("java:/comp/env/jdbc/Oracle");
        QueryRunner qr = new QueryRunner(ds); // 直接傳入 DataSource,內部自動管理連線
        int rows = qr.update(sql, params);    // 執行 INSERT/UPDATE/DELETE
        System.out.println("影響列數:" + rows);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

DbUtils 核心優勢

場景傳統 JDBCDbUtils
更新操作手動 getConnection、prepare、execute、closeqr.update(sql, params) 一行搞定
查詢單筆映射 Bean手動迭代 ResultSet、setter 注入qr.query(sql, new BeanHandler<User>(User.class), params)
查詢多筆映射 List同上qr.query(sql, new BeanListHandler<User>(User.class), params)
查詢單值...qr.query(sql, new ScalarHandler<Long>(), params)

注意事項

  • DbUtils **不負責** 連線池管理,需搭配 DataSource (Tomcat、HikariCP、DBCP 等)。
  • 傳入 DataSource 給 QueryRunner 時,每次操作會自動 getConnection() 並 close(),適合簡單業務;若需跨多條 SQL 共用同一連線(交易),請改用 QueryRunner(DataSource, true) 或手動控制 Connection。
  • 專案仍需引入 Oracle JDBC 驅動 (ojdbc8.jar)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved