簡體   English   中英

存儲過程向結果集返回null

[英]Stored Procedure Returns null to Result Set

在使用JDBC時,出現一個問題,我在mysql中創建了一個表,其中包含員工信息Employee_Id,Name,City,Salary和Year_of_joining,並且我還向同一數據庫創建了一個存儲過程,該過程需要兩個輸入並更新工資。員工基於加入年份。 這是存儲過程:

CREATE PROCEDURE proc(IN var1, IN var2)
BEGIN
  UPDATE "TABLE" SET Salary=var1+Salary WHERE Year_of_Joining= var2
END

現在,我通過java創建了到mysql數據庫的數據庫連接(該連接正在成功建立)

但是現在,當我在創建CallableStatement對象之后執行查詢並將嘗試將可調用對象的當前結果轉換為Result set時,我得到了null。 請幫我解決一下這個。 這是代碼:

// Creates connection with java:
Connection con= DriverManager.getConnection(url,username,pswrd);

// Now Calling the Stored procedure from mysql
CallableStatement col =  con.prepareCall("{call proc(?,?)}");

// gave values to the procedure
col.setDouble(1,20000);
col.setInt(2,2012);
col.execute();

// Returning Result set=null
ResultSet rs = col.getResultSet();
  1. 首先,您尚未在存儲過程中設置輸出參數。

喜歡 :

 CREATE PROCEDURE proc(IN inputParam VARCHAR(255), OUT OutParam INT)... 

然后,要檢索輸出參數的值(在創建存儲過程時指定為OUT或INOUT的參數),JDBC要求在執行語句之前使用CallableStatement接口中的各種registerOutputParameter()方法指定它們。

 col.registerOutParameter("OutParam", Types.INTEGER); 

  1. 其次,UPDATE語句不返回ResultSet! 僅SELECT語句返回ResultSet進行操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM