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

Java JDBC 連接 Oracle 與 SQL Server 綜合實戰七大場景

     編輯:Java 程式設計入門

場景一:Statement 跨庫遷移數據

MSSQL 查詢 → Oracle 批量插入,演示基礎 JDBC 流程與資源關閉模式。

場景二:PreparedStatement 參數化插入

防止 SQL 注入,類型安全,支援批量預編譯優化。

場景三:CallableStatement 調用存儲過程

{call p(?, ?, ?, ?)}
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.INTEGER);

場景四:Batch 批量處理

  • Statement.addBatch:靜態 SQL 批量
  • PreparedStatement.addBatch:參數化批量(推薦)

場景五:Transaction 事務控制

conn.setAutoCommit(false);
try { ... stmt.executeBatch(); conn.commit(); }
catch (SQLException e) { conn.rollback(); throw e; }
finally { conn.setAutoCommit(true); }

場景六:ScrollResultSet 可滾動結果集

Statement stmt = conn.createStatement(
    ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs.last(); rs.previous(); rs.absolute(6); // 隨機定位

場景七:UpdatableResultSet 直接操作結果集

ResultSet rs = stmt.executeQuery("SELECT * FROM emp2", 
    ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs.updateString("ename", "AAAA"); rs.updateRow(); // 更新
rs.moveToInsertRow(); rs.updateInt(1, 9999); rs.insertRow(); // 插入
rs.absolute(5); rs.deleteRow(); // 刪除

最佳實踐總結

  • 優先 PreparedStatement + 批量提交
  • 事務邊界清晰,異常必回滾
  • 結果集類型按需選擇,默認只讀前向
  • 大數據量分頁採用數據庫原生分頁
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved