为了账号安全,请及时绑定邮箱和手机立即绑定

存储过程调用(namedparameterjdbctemplate)

存储过程调用(namedparameterjdbctemplate)

炎炎设计 2023-05-10 14:25:36
我正在尝试使用 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)”我试过查看但无法正常工作的来源:https://docs.spring.io/spring-framework/docs/4.2.x/spring-framework-reference/html/jdbc.htmlhttps://lalitjc.wordpress.com/2013/07/02/different-ways-of-calling-stored-procedure-using-spring/https://www.logicbig.com/tutorials/spring-framework/spring-data-access-with-jdbc/spring-call-stored-procedure.html他们中的大多数人从一开始就创建了一个连接,但我已经有了它(namedParameterJdbcTemplate),还有一些正在使用我不需要的数据源,因为我已经有了连接。如何使用 namedParameterJdbcTemplate 进行调用?
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

它是这样工作的:


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


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


    try {

        namedParameterJdbcTemplate.update(sql, namedParameters);

    } catch (Exception e){

        ...     

      }


查看完整回答
反对 回复 2023-05-10
?
桃花长相依

TA贡献1860条经验 获得超8个赞

你的语法看起来不对。使用 NamedParameterJdbcTemplate 调用更新时,您需要使用这两个方法签名中的任何一个来调用该方法。

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

或者

update(String sql, SqlParameterSource paramSource)
查看完整回答
反对 回复 2023-05-10
  • 2 回答
  • 0 关注
  • 286 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信