存儲過程是保存在資料庫端執行的程序,透過 JDBC 的 CallableStatement 呼叫。它不僅能封裝複雜 SQL 邏輯、減少網路往返,還能免費替代昂貴的應用伺服器部分功能。本文從基本調用、返回結果集、到映射模式應用,全方位解析存儲過程在 Java 企業級開發中的實戰價值。
CallableStatement proc = conn.prepareCall("{ call set_death_age(?, ?) }");
proc.setString(1, poetName);
proc.setInt(2, age);
proc.execute();
部分資料庫支援從存儲過程返回游標。JDBC 標準雖不直接支援,但主流驅動均提供擴展:
proc.registerOutParameter(1, Types.OTHER);
proc.execute();
ResultSet rs = (ResultSet) proc.getObject(1);
while (rs.next()) { /* 處理資料 */ }
定義介面 ProcessPoetDeaths,實現 sendDeath 方法,傳入處理邏輯,實現資料獲取與業務處理的完全分離,極大提升複用性。
存儲過程並非銀彈,但對於資料密集型企業應用,它是降低複雜度、提升效能的利器。善用它,能讓 Java 代碼更專注於業務流程編排。