当前位置: 首页 > 知识库问答 >
问题:

jdbcTemplate,返回值的存储过程

蒋华美
2023-03-14

我有一个存储过程,它接受参数并返回一个长值。

我如何使用jdbcTemplate来调用这个存储过程并获得返回的值。

String sql = ""call my_proc(?,?)"
long ret = jdbcTemplate.queryForObject(sql, Long.class, param1,param2);

这样对吗?

共有2个答案

班昱
2023-03-14

是的,看起来是对的。语法取决于数据库,例如,对于postgres,它将是:

Long ret = jdbcTemplate.queryForObject("select my_proc(?,?)", Long.class, param1, param2);

如果结果为空,queryForObject抛出异常,希望您能够处理

公孙鸿才
2023-03-14

在spring中有多种调用存储过程的方法。您可以使用SimpleJdbcTemplate,也可以选择使用JdbcTemplate。看来您对使用JDBCTemplate很感兴趣。

下面是使用JdbcTemplate调用存储过程的可用方法

  1. 使用基于CallableStatementCreator的方法
  2. 扩展抽象类StoredProcedure
  3. 使用CallableStatement

每种方法在互联网上都有大量的例子。明智地选择了其中的任何一个。

顺便说一下,你的代码看起来还可以。但是对于复杂的存储过程调用,调用类似jdbctemplate.QueryForObject这样的存储过程是不够的。

 类似资料:
  • 本文向大家介绍Python中执行存储过程及获取存储过程返回值的方法,包括了Python中执行存储过程及获取存储过程返回值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python中执行存储过程及获取存储过程返回值的方法。分享给大家供大家参考,具体如下: 在Pathon中如何执行存储过程呢?可以使用如下方法: 存储过程定义基本如下: 1. 使用adodbapi 2. 使用pymssq

  • 问题内容: 我正在执行上面的存储过程。我收到以下错误: 消息245,级别16,状态1,过程S_Comp,第8行在将varchar值“存在的Amruthanot”转换为数据类型int时,转换失败。 请帮我解决这个问题 问题答案: 您将结果放在值中,而不是传递的值中。 从MSDN (返回) 是 返回 的整数值。存储过程可以将整数值返回到调用过程或应用程序。 更改您的程序。 调用程序

  • 问题内容: 我正在尝试从存储过程中获取返回值,但它始终返回0。 C#代码 SP 在所有情况下,它都返回0。我不知道问题所在。 问题答案: 我尝试了类似您的代码,并且可以按预期工作。 但是,您的代码中两次调用ExecuteNonQuery。 首次调用时,将按预期插入记录,然后为返回值添加参数并再次执行命令。但是现在记录已存在,并且存储过程始终落在else块中,因此始终返回零。

  • 本文向大家介绍PHP调用MySQL存储过程并返回值的方法,包括了PHP调用MySQL存储过程并返回值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php中调用执行mysql存储过程然后返回由存储过程返回的值,分享给大家供大家参考。具体分析如下: 调用存储过程的方法. a。如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,一个php变量,也可以不必

  • 本文向大家介绍Sql Server 存储过程调用存储过程接收输出参数返回值,包括了Sql Server 存储过程调用存储过程接收输出参数返回值的使用技巧和注意事项,需要的朋友参考一下 创建存储过程: 接收输出参数: 2,带返回值 创建存储过程: 接收返回值: 以上所述是小编给大家介绍的Sql Server 存储过程调用存储过程接收输出参数返回值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小

  • 我正在尝试从包应用程序Oracle10g调用存储过程“GetGlobalParamValue org.springframework.boot版本“2.2.0.release” 当我在SQL developer中运行它时,一切正常我得到了正确的结果 我试过了 1. 或者2。 它不起作用 我得到一个错误: