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 .
Чтобы подключиться к 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.
Создание других подключений к базе данных
Чтобы создать подключение к базе данных с помощью службы Apps Script JDBC , в настройках базы данных необходимо авторизовать диапазоны 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. Все остальные названия компаний и продуктов являются товарными знаками компаний, с которыми они связаны.