На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети "Интернет", находящихся на территории Российской Федерации)

Руководство по началу работы. Groovy SQL. Выполнение более сложных запросов

Предыдущие примеры достаточно просты, но GroovySql столь же тверд, когда речь заходит о более сложных запросов манипулирования данными, таких как вставки, обновления и удалять запросы. Для этого вам не обязательно использовать замкнутые выражения, так в Groovy SQL-объект обеспечивает выполнение и executeUpdate методы вместо них.

Эти методы напоминают класс оператора JDBC, у которого также есть выполнение и executeUpdate метод.

Здесь Вы видите простую вставку, которая использует подстановку снова с ${} синтаксисом. Этот код просто вставляет новую строку в таблицу.

firstName = "yue"
lastName = "wu"
sql.execute("insert into people (firstName, lastName) "+
  " values ('${firstName}', ${lastName})")

Заметим, что в этом примере, вы должны поставить кавычки вокруг любых строковых данных в операторе вставки. Обычно это не лучший способ (подумать о том, что произойдет, если ваши данные содержат символ кавычки). Лучший способ сделать то же самое, заключается в том, чтобы использовать подготовленных операторов следующим образом:

firstName = "yue"
lastName = "wu"
sql.execute("insert into people (firstName, lastName) "+
  " values (?,?)", [firstName, lastName])

Данные, которые вы хотите включить заменяется "?" в операторе вставки, а затем значения передаются в качестве массива данных элементов. Обновления аналогичны, они также используют executeUpdate метод. Обратите внимание на то, что в Распечатке 8 executeUpdate метод принимает список значений, которые будут согласованы к передаче ?

элементы в запросе.

comment = "Lazy bum"
sql.executeUpdate("update people set comment = ? where id=002", [comment])

Удаляет по существу также, как и вставки, за исключением, разумеется, что синтаксис запроса является различным.

sql.execute("delete from word where word_id = ?" , [5])

 

Рекомендуем
Популярное
наверх