使用Spring jdbctemplate。无法运行程序

时间:2013-08-20 11:52:11

标签: java spring jdbc jdbctemplate spring-jdbc

我正在尝试使用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;
}
}

此函数运行正常,并没有抛出任何错误。但是我遇到了以下问题

  1. 该程序未经代码执行

  2. 代码锁定表,所有这些表都由过程oracleProc()

  3. 使用

    请帮我解决这个问题。请澄清我的代码有什么问题。

1 个答案:

答案 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);