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

Java 資料庫操作入門指南:核心流程與進階技巧全解析

     編輯:Java 程式設計入門

一、JDBC 核心操作四步曲

Java 操作資料庫的標準流程固定為四步:獲取連線 → 執行 SQL → 處理結果 → 釋放資源。掌握此流程是所有進階技巧的基石。

1. 獲取資料庫連線

主要有兩種方式:

  • DriverManager 直連:適用於獨立應用、測試環境。需手動載入驅動類,構建 URL、帳號密碼。
  • JNDI 查找 DataSource:企業級標準做法。連線池由容器(Tomcat、WebLogic 等)管理,程式碼僅需邏輯名稱(如 jdbc/myDB),實現程式與資料庫配置解耦,支援熱部署與安全性增強。

2. 執行 SQL 語句

  • Statement:適用於靜態、無參數 SQL。注意防範 SQL 注入。
  • PreparedStatement:生產環境首選。預編譯機制提升效能,參數化查詢徹底防注入,支援批次處理與 Blob/Clob 流操作。

3. 處理執行結果

  • 查詢返回 ResultSet:游標預設在第一行之前,需呼叫 next() 逐行讀取,透過 getXxx("欄位名") 取值。
  • 更新返回 int:表示受影響的行數。

4. 釋放資源(關鍵)

嚴格遵循 「後開先關」 原則:ResultSet → Statement → Connection。建議使用 try-with-resources (Java 7+) 自動管理,避免連線洩漏導致資料庫癱瘓。

二、三大進階實戰技巧

1. 可捲動/可更新的 ResultSet

預設 ResultSet 僅支援向前讀取。建立 Statement 或 PreparedStatement 時指定型別與並發模式:

// 可捲動、唯讀
Statement stmt = conn.createStatement(
    ResultSet.TYPE_SCROLL_INSENSITIVE, 
    ResultSet.CONCUR_READ_ONLY);

// 可捲動、可更新
PreparedStatement ps = conn.prepareStatement(sql,
    ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_UPDATABLE);

之後即可呼叫 absolute(n)、previous()、updateRow() 等方法實現靈活導航與就地更新。

2. 批次更新

大量資料寫入時,批次處理可減少網路往返,效能提升數十倍。

  • Statement.addBatch(sql):適用於多條不同 SQL(混合 INSERT/UPDATE/DELETE)。
  • PreparedStatement.addBatch():適用於同一 SQL 多組參數(如大量插入)。

執行 executeBatch() 返回 int[],每個元素對應單條 SQL 影響行數。

3. 事務控制

確保業務邏輯原子性的核心手段:

  1. conn.setAutoCommit(false) 關閉自動提交。
  2. 執行多條 SQL(每條執行前關閉前一個 Statement)。
  3. 成功呼叫 conn.commit(),異常捕獲後呼叫 conn.rollback()。
  4. finally 區塊恢復 setAutoCommit(true) 並釋放連線。

三、最佳實踐清單

  • ✅ 生產環境務必使用連線池(HikariCP、Druid、容器內建)。
  • ✅ 所有動態查詢統一使用 PreparedStatement。
  • ✅ 大量寫入採用批次更新 + 適當提交頻率(如每 1000 條 commit 一次)。
  • ✅ 事務邊界清晰劃分,業務方法層面控制事務(配合 Spring @Transactional)。
  • ✅ 資源釋放交給 try-with-resources 或框架模板類(JdbcTemplate)。

掌握這些核心流程與技巧,即可應對 90% 以上的 Java 資料庫開發場景,為後續學習 ORM 框架(MyBatis、Hibernate/JPA)打下堅實基礎。

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