conn.setAutoCommit(false),批次交易手動 commit()/rollback(),大幅減少圓趟次數。Statement 比 PreparedStatement 更快 (避免預編譯開銷)。'')、日期 TO_DATE、數值格式,避免注入與錯誤。((OraclePreparedStatement)pstmt).setExecuteBatch(30);
pstmt.executeUpdate(); // 累積 30 筆自動送批次
// 或隨時 pstmt.sendBatch();
setBinaryStream/setCharacterStream;需先 INSERT EMPTY_BLOB() RETURNING col INTO ? 取得 Locator 再寫入。{call proc(?,?)},避免 PL/SQL 包裝器耦合,利於移植。JPublisher 產生 Java 類別,實現多應用共享領域模型與邏輯。UPDATE ... SET (col1,col2) = (SELECT ...) 取代逐行抓取-計算-更新,消除網路往返與中間層序列化開銷。| 場景 | 建議 API | 關鍵設定 |
|---|---|---|
| 高併發 OLTP | PreparedStatement | AutoCommit=false + 批次提交 |
| 動態報表/臨時查詢 | Statement | Helper 格式化 + 關閉游標 |
| 大量資料載入 | PreparedStatement | setExecuteBatch(100~1000) |
| LOB 讀寫 | Locator (BLOB/CLOB) | RETURNING INTO + getBinaryStream |