【问题标题】:Using Spring jdbctemplate. Unable to run a procedure使用 Spring jdbctemplate。无法运行程序
【发布时间】:2013-08-20 11:52:10
【问题描述】:

我正在尝试使用 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() 使用

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

【问题讨论】:

    标签: java spring jdbc jdbctemplate spring-jdbc


    【解决方案1】:

    在 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);
    

    【讨论】:

    • 谢谢你 Sachin Pasalkar。我只使用 jdbcTemplate.update("call proc (?, ?)", par1, par2) 。但它不会触发程序。
    猜你喜欢
    • 1970-01-01
    • 2020-11-27
    • 2020-10-03
    • 2020-04-20
    • 2020-02-22
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多