Apps Script może łączyć się z zewnętrznymi bazami danych za pomocą usługi JDBC, która jest obudową standardowej technologii Java Database Connectivity. Usługa JDBC obsługuje bazy danych Google Cloud SQL for MySQL, MySQL, Microsoft SQL Server i Oracle.
Aby zaktualizować zewnętrzną bazę danych za pomocą JDBC, skrypt musi otworzyć połączenie z bazą danych, a następnie wprowadzić zmiany, wysyłając instrukcje SQL.
Bazy danych Google Cloud SQL
Google Cloud SQL umożliwia tworzenie relacyjnych baz danych w chmurze Google. Pamiętaj, że za korzystanie z usługi Cloud SQL mogą być naliczane opłaty.
Instancję Google Cloud SQL możesz utworzyć, wykonując czynności opisane w artykule Szybki start z Cloud SQL.
Tworzenie połączeń z Google Cloud SQL
Istnieją 2 sposoby nawiązywania połączenia z bazą danych Google Cloud SQL za pomocą usługi JDBC w Apps Script:
- (zalecane) Łączenie za pomocą metody Jdbc.getCloudSqlConnection(url)
- Łączenie za pomocą metody Jdbc.getConnection(url)
Te metody omawiamy poniżej. Obie metody są prawidłowe, ale druga wymaga autoryzacji zestawu zakresów adresów IP, aby uzyskać dostęp do bazy danych.
Użycie metody Jdbc.getCloudSqlConnection(url) (zalecane)
Ta metoda tworzy połączenie z instancją MySQL w Google Cloud SQL za pomocą metody Jdbc.getCloudSqlConnection(url). Adres URL bazy danych ma postać jdbc:google:mysql://subname
, gdzie subname
to nazwa połączenia z instancją MySQL podana na stronie Przegląd instancji Cloud SQL w konsoli Google Cloud.
Aby nawiązać połączenie z serwerem SQL Cloud SQL, zobacz Jdbc.getConnection(url).
Użycie metody Jdbc.getConnection(url)
Aby skorzystać z tej metody, musisz autoryzować określone zakresy adresów IP w ramach międzydomenowego routingu bez klasy (CIDR), aby serwery Apps Script mogły połączyć się z Twoją bazą danych. Zanim uruchomisz skrypt, wykonaj te czynności:
W instancji Google Cloud SQL autoryzuj zakresy adresów IP, po jednym naraz z tego źródła danych.
Skopiuj adres URL przypisany do Twojej bazy danych. Powinien mieć format
jdbc:mysql:subname
.
Po autoryzowaniu tych zakresów adresów IP możesz tworzyć połączenia z instancją Google Cloud SQL za pomocą jednej z metod Jdbc.getConnection(url) i adresu URL skopiowanego powyżej.
Inne bazy danych
Jeśli masz już własną bazę danych MySQL, Microsoft SQL Server lub Oracle, możesz się z nią połączyć za pomocą usługi JDBC w Apps Script.
Tworzenie innych połączeń z bazą danych
Aby utworzyć połączenie z bazą danych za pomocą usługi JDBC w Apps Script, w ustawieniach bazy danych musisz autoryzować zakresy adresów IP z tego źródła danych.
Gdy te listy dozwoleń będą już gotowe, możesz utworzyć połączenie z bazą danych, używając jednej z metod Jdbc.getConnection(url) i adresu URL bazy danych.
Przykładowy kod
Przykładowy kod poniżej zakłada, że łączysz się z bazą danych Google Cloud SQL i tworzy połączenia z bazami danych za pomocą metody Jdbc.getCloudSqlConnection(url). W przypadku innych baz danych musisz użyć metody Jdbc.getConnection(url) do tworzenia połączeń z bazą danych.
Więcej informacji o metodach JDBC znajdziesz w dokumentacji JDBC w języku Java.
Tworzenie bazy danych, użytkownika i tabeli
Większość programistów używa narzędzia wiersza poleceń MySQL do tworzenia baz danych, użytkowników i tabel. To samo można jednak zrobić w Apps Script, jak pokazano poniżej. Warto utworzyć co najmniej 1 innego użytkownika, aby skrypt nie musiał zawsze łączyć się z bazą danych jako root
.
zapisywanie danych w bazie danych,
Przykłady poniżej pokazują, jak zapisać w bazie danych pojedynczy rekord oraz partię 500 rekordów. Grupowanie jest niezbędne w przypadku operacji zbiorczych.
Zwróć też uwagę na użycie instrukcji parametrycznych, w których zmienne są oznaczone symbolem ?
. Aby zapobiec atakom polegającym na wstrzykiwaniu kodu SQL, używaj instrukcji parametrycznych, aby uciekać wszystkie dane podawane przez użytkownika.
odczytywanie z bazy danych,
Ten przykład pokazuje, jak odczytać dużą liczbę rekordów z bazy danych, wykonując w razie potrzeby pętlę na zbiorze wyników.
Zamknięcie połączeń
Po zakończeniu wykonywania skryptu połączenia JDBC są zamykane automatycznie. Pamiętaj, że pojedynczy wywołanie google.script.run
liczy się jako pełne wykonanie, nawet jeśli strona usługi HTML, która wykonała wywołanie, pozostaje otwarta.
Jeśli jednak przed zakończeniem skryptu wiesz, że nie będziesz już używać połączenia, instrukcji ani zbioru wyników, warto je zamknąć ręcznie, wywołując funkcję JdbcConnection.close()
, JdbcStatement.close()
lub JdbcResultSet.close()
.
Wyświetlenie alertu lub okna z prośbą powoduje również zamknięcie wszystkich otwartych połączeń JDBC. Inne elementy interfejsu użytkownika, takie jak menu niestandardowe, okna dialogowe i paski boczne z niestandardowym zawartością, nie są jednak dozwolone.
Google, Google Workspace i powiązane znaki i logotypy są znakami towarowymi Google LLC. Wszystkie inne nazwy firm i produktów są znakami towarowymi odpowiednich podmiotów.