Apps Script может подключаться к внешним базам данных через службу JDBC , являющуюся оболочкой стандартной технологии Java Database Connectivity . Служба JDBC поддерживает Google Cloud SQL для баз данных MySQL , MySQL, Microsoft SQL Server и Oracle.
Чтобы обновить внешнюю базу данных с помощью JDBC, ваш сценарий должен открыть соединение с базой данных, а затем внести изменения, отправив операторы SQL.
Базы данных Google Cloud SQL
Google Cloud SQL позволяет создавать реляционные базы данных, которые находятся в облаке Google. Обратите внимание, что Cloud SQL может взимать плату в зависимости от вашего использования.
Вы можете создать экземпляр Google Cloud SQL, выполнив шаги, перечисленные в кратком руководстве по Cloud SQL .
Создание соединений Google Cloud SQL
Есть два способа установить соединение с базой данных Google Cloud SQL с помощью службы JDBC Apps Script:
- (Рекомендуется) Подключение с использованием Jdbc.getCloudSqlConnection(url)
- Подключение с использованием Jdbc.getConnection(url)
Эти методы объясняются ниже. Оба допустимы, но второй метод требует, чтобы вы авторизовали набор диапазонов IP-адресов для доступа к вашей базе данных.
Использование Jdbc.getCloudSqlConnection(url) (рекомендуется)
Этот метод создает соединение с экземпляром Google Cloud SQL MySQL с помощью метода Jdbc.getCloudSqlConnection(url) . URL-адрес базы данных имеет вид jdbc:google:mysql://subname
, где subname
— это имя подключения экземпляра MySQL, указанное на странице обзора экземпляра Cloud SQL в консоли Google Cloud Platform .
Чтобы подключиться к Cloud SQL SQL Server, см. Jdbc.getConnection(url) .
Использование Jdbc.getConnection(url)
Чтобы использовать этот метод, вы должны авторизовать определенные диапазоны IP -адресов бесклассовой междоменной маршрутизации (CIDR), чтобы серверы Apps Script могли подключаться к вашей базе данных. Перед запуском скрипта выполните следующие шаги:
В экземпляре Google Cloud SQL авторизуйте диапазоны IP-адресов из этого источника данных по одному за раз.
Скопируйте URL-адрес, который был назначен вашей базе данных; он должен иметь форму
jdbc:mysql:subname
.
После авторизации этих диапазонов IP-адресов вы можете создавать подключения к своему экземпляру Google Cloud SQL, используя один из методов Jdbc.getConnection(url) и URL-адрес, который вы скопировали выше.
Другие базы данных
Если у вас уже есть собственная база данных MySQL, Microsoft SQL Server или Oracle, вы можете подключиться к ней через службу JDBC Apps Script.
Создание других подключений к базе данных
Чтобы создать подключение к базе данных с помощью службы JDBC Apps Script, в настройках вашей базы данных вы должны авторизовать диапазоны IP-адресов из этого источника данных .
Когда эти списки разрешенных будут созданы, вы можете создать подключение к базе данных, используя один из методов Jdbc.getConnection(url) и URL-адрес вашей базы данных.
Образец кода
В приведенном ниже примере кода предполагается, что вы подключаетесь к базе данных Google Cloud SQL и создаете подключения к базе данных с помощью метода Jdbc.getCloudSqlConnection(url) . Для других баз данных вы должны использовать метод Jdbc.getConnection(url) для создания соединений с базой данных.
Дополнительные сведения о методах JDBC см. в документации по Java для JDBC .
Создайте базу данных, пользователя и таблицу
Большинство разработчиков используют инструмент командной строки MySQL для создания баз данных, пользователей и таблиц. Однако то же самое можно сделать и в Apps Script, как показано ниже. Рекомендуется создать по крайней мере еще одного пользователя, чтобы вашему сценарию не всегда приходилось подключаться к базе данных как root
.
Запись в базу данных
В приведенных ниже примерах показано, как записать в базу данных одну запись, а также пакет из 500 записей. Пакетирование жизненно важно для массовых операций.
Обратите также внимание на использование параметризованных операторов, в которых переменные обозначаются символом ?
. Чтобы предотвратить атаки с использованием SQL-инъекций , вы должны использовать параметризованные операторы для экранирования всех данных, предоставленных пользователем.
Чтение из базы данных
В этом примере показано, как читать большое количество записей из базы данных, при необходимости перебирая результирующий набор.
Закрытие соединений
Соединения JDBC закрываются автоматически, когда сценарий завершает выполнение. (Имейте в виду, что один вызов google.script.run
считается полным выполнением, даже если страница службы HTML, с которой был выполнен вызов, остается открытой.)
Тем не менее, если вы знаете, что завершили работу с соединением, оператором или результирующим набором до окончания сценария, рекомендуется закрыть их вручную, вызвав JdbcConnection.close()
, JdbcStatement.close()
или JdbcResultSet.close()
.
Отображение диалогового окна предупреждения или подсказки также завершает все открытые соединения JDBC. Однако другие отображаемые элементы пользовательского интерфейса, такие как настраиваемые меню или диалоговые окна и боковые панели с настраиваемым содержимым, не отображаются.
Google, Google Workspace и связанные с ними знаки и логотипы являются товарными знаками Google LLC. Все остальные названия компаний и продуктов являются товарными знаками компаний, с которыми они связаны.