存储过程调用(namedparameterjdbctemplate)

我正在尝试使用 jdbc 调用存储过程。我的连接是通过 namedParameterJdbcTemplate 传递的,这就是我必须用来调用它的方式,但是当我尝试这样做时:


public void storedProcedure(long fileId, String Action) {


    String sql = "call procedureName(?)";


    try {

        namedParameterJdbcTemplate.update(sql, Long.valueOf(fileId) );

        

    } catch (Exception e) {

        logger.error("Error while running stored procedure  {}", sql, e);

    }

}

我收到以下错误:

无法解析方法“更新(java.lang.String,java.lang.Long)”

我试过查看但无法正常工作的来源:

他们中的大多数人从一开始就创建了一个连接,但我已经有了它(namedParameterJdbcTemplate),还有一些正在使用我不需要的数据源,因为我已经有了连接。

如何使用 namedParameterJdbcTemplate 进行调用?


炎炎设计
浏览 287回答 2
2回答

慕后森

它是这样工作的:    final String sql = "call procedureName (:variable)";    SqlParameterSource namedParameters = new MapSqlParameterSource("variable", variable);    try {        namedParameterJdbcTemplate.update(sql, namedParameters);    } catch (Exception e){        ...           }

桃花长相依

你的语法看起来不对。使用 NamedParameterJdbcTemplate 调用更新时,您需要使用这两个方法签名中的任何一个来调用该方法。update(String sql, Map<String,?> paramMap)或者update(String sql, SqlParameterSource paramSource)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java