- 調(diào)用帶有輸入和輸出參數(shù)的存儲過程
?????????
假設(shè)已經(jīng)存在一個存儲過程user_registry_stat,其代碼如下:??????????????? CREATE PROCEDURE user_registry_stat(@stylebook int,@result?int output? )AS
????????????????????BEGIN
????????????????????/*不返回計數(shù)*/
??????????????????? SET NOCOUNT ON
??????????????????? DECLARE @total_amount int
??????????????????? SET @total_amount = (SELECT count(id) as amount from CP_USER)
??????????????????? IF(@total_amount>@stylebook)
????????????????????BEGIN
????????????????????????? @result = 1
????????????????????END
??????????????????? ELSE
????????????????????BEGIN
????????????????????????? @result =2
????????????????????END
???????????????
???????????????JAVA執(zhí)行代碼如下:
???????????????public static void executeStoredProcedure(Connection con) {
?????????????????????try {
???????????????????????????CallableStatement cstmt = con.prepareCall("{call user_registry_s(?,?)}");
????????????????????????????cstmt.seInt(1, 50);
???????????????????????????cstmt.execute();
?????????????????????????? System.out.println("RETURN STATUS: " + cstmt.getInt(2));
???????????????????????????cstmt.close();
??????????????????????}catch (Exception e) {
?????????????????????????? e.printStackTrace();
?????????????????????}
??????????????????}
2.?? 調(diào)用帶有返回狀態(tài)的存儲過程
????????????假設(shè)已經(jīng)存在一個存儲過程user_registry_stat,其代碼如下:
??????????????????CREATE PROCEDURE user_registry_stat(@stylebook int)AS
????????????????????BEGIN
????????????????????/*不返回計數(shù)*/
??????????????????? SET NOCOUNT ON
??????????????????? DECLARE @total_amount int
??????????????????? SET @total_amount = (SELECT count(id) as amount from CP_USER)
??????????????????? IF(@total_amount>@stylebook)
????????????????????????return 1
??????????????????? ELSE
????????????????????????return 2
????????????
????????????java執(zhí)行代碼如下:
????????????public static void executeStoredProcedure(Connection con) {
???????????????try {
??????????????????CallableStatement cstmt = con.prepareCall("{? = call user_registry_stat(?)}");
??????????????????cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
??????????????????cstmt.seInt(2, 50);
??????????????????cstmt.execute();
????????????????? System.out.println("RETURN STATUS: " + cstmt.getInt(1));
????????????
??????????????????cstmt.close();
????????????}catch (Exception e) {
???????????????e.printStackTrace();
????????????}
?????????}
參考: http://msdn2.microsoft.com/zh-cn/library/ms378371.aspx