码迷,mamicode.com
首页 > 数据库 > 详细

JdbcTemplate执行带输入参数和输出参数的存储过程

时间:2015-07-14 22:02:43      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

直接上代码:

    /**
        * 执行返回一个输出参数,若干输入参数的存储过程
        * 方法第一个参数为存储过程名称,第二个参数为存放输入参数的数组(按顺序存放),方法返回值为存储过程输出参数
        */
    public String execProcedureWithOutParam(final String procName,final String[] inParams){
        String returnVal=(String)getJdbcTemplate().execute(new CallableStatementCreator() {
            
            public CallableStatement createCallableStatement(Connection con)
                    throws SQLException {
                int procArgNum=inParams.length+1;
                String storedProc="{call "+procName+"(";
                for (int i = 0; i < procArgNum; i++) {
                    if(i!=procArgNum-1){
                        storedProc+="?,";
                    }else {
                        storedProc+="?";
                    }
                }
                storedProc+=")}";
                
                CallableStatement cs=con.prepareCall(storedProc);
                for (int i = 1; i <=inParams.length; i++) {
                    cs.setString(i, inParams[i-1]);
                }
                cs.registerOutParameter(inParams.length+1, java.sql.Types.VARCHAR);
                return cs;
            }
        },new CallableStatementCallback() {
            
            public Object doInCallableStatement(CallableStatement cs)
                    throws SQLException, DataAccessException {
                cs.execute();
                return cs.getString(inParams.length+1);
            }
        });
        return returnVal;
    }

 

JdbcTemplate执行带输入参数和输出参数的存储过程

标签:

原文地址:http://www.cnblogs.com/sheeva/p/4646495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!