Java 調用 Oracle 存儲過程 簡單示例

----建立的存儲過程
create or replace procedure addTest(v1  in number, v2  in number,res out number) as
begin
  res := v1 + v2;
end addTest;


----PLSQL中調用存儲過程addTest
declare
    rest number;
begin
  addTest(2,33,rest);
  dbms_output.put_line('計算結果:  '||rest);
end;

執行結果 java

 

Java代碼中調用存儲過程addTest
package com.callProcedure;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;

public class CallSimpleProcedure {

	public static void main(String[] args) {
		// 加載驅動
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			// 獲取連接
			Connection conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@IP地址:1521:數據庫名稱", "數據庫登陸名",
					"數據庫登陸密碼");
			// 獲取調用存儲過程的對象
			CallableStatement cs = conn.prepareCall("{call addTest(?,?,?)}");
			// 爲存儲過程參數賦值
			cs.setInt(1, 23);// 輸入值
			cs.setInt(2, 20);// 輸入值
			cs.registerOutParameter(3, Types.NUMERIC);// 輸出值類型
			// 執行
			cs.execute();
			// 獲取輸出值
			int result = cs.getInt(3);
			System.out.println("java 調用存儲過程獲取輸出值:\t" + result);
			// 關閉鏈接
			conn.close();
		} catch (ClassNotFoundException e) {
			System.out.println(e.getMessage());
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
	}

}



執行結果: sql

相關文章
相關標籤/搜索