有返回值 存储过程 的 调用

本文介绍了一个Java类,该类用于调用带有返回值的存储过程。通过实例展示了如何使用`CallableStatement`准备并执行存储过程,同时处理输入参数及获取输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有返回值的存储过程的调用方法如下:
public class SenderPrepareCallProcedure {
    
public String testP(int statusWillSending, int statusNowSending, int fixedSending) {
        String taskId 
= null;
        Connection connection 
= null;
        CallableStatement proc 
= null;
        
try {
            connection 
= DBPool.getConnection();
            proc 
= connection.prepareCall("{call backtrack_taskId(?,?,?,?)}");
            proc.setInt(
1, statusWillSending);
            proc.setInt(
2, statusNowSending);
            proc.setInt(
3, fixedSending);
            proc.registerOutParameter(
4, Types.INTEGER);
            proc.execute();
            taskId 
= String.valueOf(proc.getInt(4));
            
//System.out.println("taskId is: " + taskId);
        }
 catch (Exception e) {
            e.printStackTrace();
        }
 finally {
            
this.freeSource(proc, connection);
        }

        
if(taskId != null && !taskId.equals("0")){
            
return taskId;
        }

        
return null;
    }


    
private void freeSource(CallableStatement proc, Connection connection) {
        
if (proc != null{
            
try {
                proc.close();
            }
 catch (Exception e) {
                e.printStackTrace();
            }

        }

        
if (connection != null{
            
try {
                connection.close();
            }
 catch (Exception e) {
                e.printStackTrace();
            }

        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值