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

JDBC 調用存儲過程實戰(一):無輸出參數的基本調用模式

     編輯:Java 相關知識

本系列首篇介紹最基礎的存儲過程調用:只有輸入參數、無輸出參數、無結果集返回的場景。雖簡單,但奠定了 CallableStatement 使用的基礎模式。

存儲過程定義

create procedure getsum
    @n int = 0
as
    declare @sum int, @i int
    set @sum = 0; set @i = 0
    while @i <= @n begin
        set @sum = @sum + @i
        set @i = @i + 1
    end
    print 'the sum is ' + ltrim(rtrim(str(@sum)))

SQL 測試:exec getsum 100(控制台輸出結果,但無返回值供 Java 獲取)。

Java 調用代碼

import java.sql.*;

public class ProcedureTest {
    public static void main(String args[]) throws Exception {
        DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
        Connection conn = DriverManager.getConnection("jdbc:odbc:mydata", "sa", "");

        CallableStatement c = conn.prepareCall("{call getsum(?)}");
        c.setInt(1, 100);   // 設置輸入參數
        c.execute();        // 執行
        conn.close();
    }
}

核心概念

  • CallableStatement:JDBC 調用存儲過程的標準接口,語法 {call 過程名(?,...)}。
  • IN 參數:setXxx(index, value) 設置,索引從 1 開始。
  • 無輸出/結果集:此類過程僅執行邏輯(如打印、寫日誌、發送郵件),Java 僅需調用 execute() 觸發執行。
  • 限制:過程內 print 輸出無法直接被 Java 捕獲(需重定向或改為輸出參數/結果集)。

系列導讀

後續文章將遞進講解:

  1. 輸出參數(整數、字符串、游標)
  2. 刪除/修改/新增/查詢 完整 CRUD 存儲過程調用
  3. 動態創建並調用 存儲過程

建議按序學習,逐步掌握 JDBC 與存儲過程交互的完整技能棧。

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