我正在尝试使用spring jdbctemplate运行oracle过程。我正在使用以下内容 代码来运行程序
private boolean executeProcedure(jdbcTemplate JdbcTemplateTest)
{
try
{
int x = jdbcTemplateTest.update("call oracleProc()");
return true;
}
catch(Exception e)
{
logger.error("Error While runing procedure::"+procedureName+"-"+e);
return false;
}
}
此函数运行正常,并没有抛出任何错误。但是我遇到了以下问题
该程序未经代码执行
代码锁定表,所有这些表都由过程oracleProc()
请帮我解决这个问题。请澄清我的代码有什么问题。
答案 0 :(得分:0)
有许多方法可以在Spring中调用存储过程。
尝试使用CallableStatementCreator,您将使用Java的CallableStatement标准接口。
或
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
.withSchemaName(schema)
.withCatalogName(package)
.withProcedureName(procedure)();
...
jdbcCall.addDeclaredParameter(new SqlParameter(paramName, OracleTypes.NUMBER));
...
jdbcCall.execute(callParams);
对于简单的过程,您可以使用jdbcTemplate的更新方法:
jdbcTemplate.update("call proc (?, ?)", par1, par2);