簡體   English   中英

存儲過程調用(namedparameterjdbctemplate)

[英]Stored procedures call (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 進行調用?

謝謝

這是它的工作原理:

    final String sql = "call procedureName (:variable)";

    SqlParameterSource namedParameters = new MapSqlParameterSource("variable", variable);

    try {
        namedParameterJdbcTemplate.update(sql, namedParameters);
    } catch (Exception e){
        ...     
      }

你的語法看起來不對。 使用 NamedParameterJdbcTemplate 調用 update 時,需要使用這兩個方法簽名中的任何一個調用該方法。

update(String sql, Map<String,?> paramMap)

或者

update(String sql, SqlParameterSource paramSource)

欲了解更多信息 - https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.html

進一步的例子 - https://netjs.blogspot.com/2016/11/insert-update-using-namedparameterjdbctemplate-spring.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM