And*_*Man 5 java spring spring-jdbc spring-boot
在 Java spring boot 框架中,尝试使用以下方法消费 Store 过程
jdbcTemplate.setDataSource(dataSource);
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate)
.withSchemaName("abc")
.withFunctionName("proname")
.addDeclaredParameter(new
SqlOutParameter("",""));
Map<String, Object> map= new HashMap<>();
map.put("a",a);
map.put("b",b);
map.put("c",c);
map.put("d",d);
SqlParameterSource in = new MapSqlParameterSource(map);
Map<String, Object> out = simpleJdbcCall.execute(in);
Run Code Online (Sandbox Code Playgroud)
但我的程序也有参数这里是我的程序
function proname(z varchar2,
a varchar2,
b varchar2,
c varchar2,
d in out number,
e out number,
f out varchar2,
g out varchar2)
Run Code Online (Sandbox Code Playgroud)
该过程也有输出参数,如上面的代码所示,问题是如何在简单的 JDBC 调用中提到多个输出参数(注意多个)????
out您可以按照以下教程从存储过程接受多个参数。这应该会向您简要介绍如何实现这一点:
从上述文章中获取示例代码,这就是您调用执行存储过程的方式:
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(dataSource).withProcedureName("getRecord");
SqlParameterSource in = new MapSqlParameterSource().addValue("in_id", id);
Map<String, Object> out = jdbcCall.execute(in);
Run Code Online (Sandbox Code Playgroud)
在同一示例中,一旦获得所需的输出,您将从OUT以下格式的响应中获取参数:
Student student = new Student();
student.setId(id);
student.setName((String) out.get("out_name"));
student.setAge((Integer) out.get("out_age"));
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
10300 次 |
| 最近记录: |