В приведенном выше коде sql
является экземпляром groovy.sql.Sql . Это обеспечивает метод rows(String sql)
, который можно использовать для выполнения SQL, и возвращает результат.
Вообще говоря, я думаю, что этот метод rows
является плохим выбором, если вы хотите вызвать сохраненный процесс, потому что вам нужно объединить имя процесса и все аргументы в одну строку, что является плохой идеей с точки зрения безопасности типов и читабельности.
Вместо этого используйте один из методов перегрузки call
, предоставляемых тем же классом, которые специально предназначены для вызова хранимых процедур. Например, если вы просто хотите вызвать процедуру (игнорируя все результаты, которые она возвращает), используйте:
sql.call("{call EmployeeQueryClient(?, ?, ?, ?)}", ['SomeClient', 1, 1, 0])
Синтаксис, используемый здесь для вызова хранимого процесса,
{позвонить в PROC_NAME (PROC_ARGS)}
будет работать для MySql. Если вы не используете MySql, вам нужно заменить его на то, что используется вашей СУБД для вызова хранимого процесса.
Перегруженные версии метода call
позволяют обрабатывать любые возвращенные результаты и / или выходные параметры сохраненного процесса.