выходной параметр на simplejdbccall - PullRequest
3 голосов
/ 02 сентября 2011

У меня есть хранимая процедура с одним целочисленным выходным параметром и 5 входными параметрами varchar, независимо от того, что я пробовал, похоже, я не могу вернуть выходной параметр. Я запустил sproc на БД, и он возвращается с данными, поэтому я не вижу, что я делаю неправильно.

Кто-нибудь знает, как вернуть выходной параметр из simplejdbccall?

У меня есть что-то вроде этого:

    SimpleJdbcCall simpleJdbcCall =
        new SimpleJdbcCall( getDatasourceForEnvironment() ).withProcedureName( "_Get_Id" ).declareParameters(
            new SqlParameter( "MyID", Types.VARCHAR ), new SqlParameter( "MySourceID", Types.VARCHAR ),
            new SqlParameter( "MyLocationID", Types.VARCHAR ), new SqlParameter( "MyVisitID", Types.VARCHAR ),
            new SqlParameter( "MyVisitDate", Types.VARCHAR ) );

    HashMap< String, String > input = new HashMap< String, String >();
    input.put( "MyID", myObj.getMyID() );
    input.put( "MySourceID", myObj.getMySourceID() );
    input.put( "MyLocationID", myObj.getMyLocationID() );
    input.put( "MyVisitID", myObj.getMyVisitID() );
    input.put( "MyVisitDate", myObj.getMyVisitDate() );

    System.out.println( simpleJdbcCall.execute( input ) );

1 Ответ

2 голосов
/ 03 сентября 2011

Было две вещи, которые я ошибался:

  1. Я подключен к неверной базе данных. Написание более гранулированной единицы тест выявил мою ошибку.

  2. Поскольку возвращаемое значение «execute» является картой, выходные параметры имеют регистр чувствительный.

Короче говоря, ничего особенного вам не нужно делать - Spring по умолчанию включает выходные параметры. Кроме того, MapSqlParameterSource - гораздо более чистый способ использования таких методов.

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