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. Все остальные названия компаний и продуктов являются товарными знаками компаний, с которыми они связаны.