17,086
社区成员
发帖
与我相关
我的任务
分享
/**
* 执行存储过程 (无返回值的)
* @param dbname 数据源名字
* @param spname 存储过程名字
* @param params 传入存储过程参数(null为没有传入参数)
* @return 执行影响的行数,-1为失败
*/
@Override
public String Execute(String dbname, String spname, Object[] params) {
int iReturn=-1;
try{
if(null==jdbcTemplate){
log.warn("jdbcTemplate is null");
}
if(null==spname||0==spname.trim().length()){
log.warn("vSpname is null");
return null;
}
if(null!=dbname && dbname.trim().length()>0){
log.info("dsName="+dbname);
this.jdbcTemplate=(JdbcTemplate)AppUtil.getBean(dbname);
}
String strSQL="call "+spname+"(";
if(null!=params && params.length>0){
for(int i=0;i<params.length;i++){
if(0==i)
strSQL=strSQL+"?";
else
strSQL=strSQL+",?";
}
}
strSQL=strSQL+")";
if(null!=params && params.length>0){
log.debug("执行带参数的存储过程:"+dbname+spname+" info:"+Log4jUtil.getInfo(strSQL, params));
iReturn=this.jdbcTemplate.update(strSQL, params);
}else{
log.debug("执行不带参数的存储过程:"+dbname+spname+" info:"+strSQL);
iReturn=this.jdbcTemplate.update(strSQL);
}
log.info("iReturn="+iReturn);
log.info("strSQL="+strSQL);
// log.info("params="+params[0].toString());
}catch(Exception ex){
log.error("",ex);
throw new ApplicationException(ex.getMessage());
}
return ""+iReturn;
}