java - 存储过程调用(namedparameterjdbctemplate)

标签 java stored-procedures spring-jdbc

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

我收到以下错误:

Cannot resolve method 'update(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){
        ...     
      }

关于java - 存储过程调用(namedparameterjdbctemplate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57295069/

相关文章:

java - 在JFrame中使用paint()时出现问题

sql - VARIADIC 参数必须是最后一个输入参数

java - SQL 查询模式和相对性能

java - Clickhouse JDBC 驱动类名

Java 控制流图库

java - REST-Assured - 无法访问 JSON 响应中的特定 key

java - 如何只用它的键定义一个 JSONObject

c# - 在 SQL Server 和 C# 中运行查询的结果不同

sql-server - 如何在Powershell中获取SQL存储过程的内容?

java - 覆盖属性文件中数据库连接的超时