JDBI поддерживает хранимую процедуру с параметром out

JDBI имеет @SqlCall аннотация для вызова процедуры, но прямо сейчас метод, помеченный только этой аннотацией, может вернуть null или же OutParameters,

Так что сейчас есть, в любом случае, мы можем получить выходной параметр через OutParameters при вызове процедуры с параметром out, как показано ниже:

CREATE PROCEDURE get_total (IN num1 INT, IN num2 INT, OUT result INT) 
BEGIN
   SELECT num1 + num2 INTO result;
END;

Итак, сейчас мое временное решение:

@SqlCall("call get_total(:num1, :num2, @result)")
public abstract void getTotal(@Bind("num1") int num1, @Bind("num2") int num2);

@SqlQuery("SELECT @result AS result")
public abstract int getQueryTotal();

/**
 * call procedure firstly, then query the out parameter as a variable.
 */
public int getCalculateTotal(int num1, int num2) {
   getTotal(1, 2);
   return getQueryTotal();
}

Так есть ли у кого-нибудь хороший способ получить параметры выхода?

1 ответ

Вы можете зарегистрировать выходной параметр с помощью @OutParameter аннотация:

@SqlCall("call get_total(:num1, :num2, :result)")
@OutParameter(name="result", sqlType=Types.INTEGER)
public abstract OutParameters getTotal(@Bind("num1") int num1, @Bind("num2") int num2);

OutParameters Тип имеет методы для получения каждого выходного параметра по имени.

Другие вопросы по тегам