Несколько выходных параметров в SimpleJdbcCall - PullRequest
0 голосов
/ 06 июня 2018

В среде 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);

, но моя процедура также имеет параметры, вот моя процедура

function proname(z varchar2,
                                            a varchar2,
                                            b varchar2,
                                            c varchar2,
                                            d in out number,
                                            e out number,
                                            f out varchar2,
                                            g out varchar2)

процедуратакже имеет параметры out, как можно видеть в приведенном выше коде. Вопрос в том, как я могу упомянуть несколько параметров out (Note Multiple) в Simple JDBC Call ????

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете следовать следующим учебникам, чтобы принять несколько out параметров из хранимой процедуры.Это должно дать вам краткое описание того, как это можно реализовать:

  1. Spring JDBC с хранимыми процедурами
  2. Spring JDBC с простым вызовом JDBC

Взяв пример кода из вышеприведенных статей, вы выполняете вызов для выполнения хранимой процедуры следующим образом:

SimpleJdbcCall jdbcCall = new SimpleJdbcCall(dataSource).withProcedureName("getRecord");
SqlParameterSource in = new MapSqlParameterSource().addValue("in_id", id);
Map<String, Object> out = jdbcCall.execute(in);

Из того же примера, как только вы получитеваш требуемый вывод, вы будете получать параметры OUT из ответа в следующем формате:

Student student = new Student();
student.setId(id);
student.setName((String) out.get("out_name"));
student.setAge((Integer) out.get("out_age"));

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...