Apps Script może łączyć się z zewnętrznymi bazami danych za pomocą usługi JDBC, która opiera się na 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 działających w chmurze Google. Pamiętaj, że Cloud SQL może powodować naliczanie opłat w zależności od wykorzystania.
Możesz utworzyć instancję Google Cloud SQL, wykonując czynności opisane w krótkim wprowadzeniu do Cloud SQL.
Tworzę połączenia Google Cloud SQL
Połączenie z bazą danych Google Cloud SQL przy użyciu usługi JDBC Apps Script można nawiązać na 2 sposoby:
- (Zalecane) Łączenie przez Jdbc.getCloudSqlConnection(url)
- Łączenie za pomocą Jdbc.getConnection(url)
Poniżej omówiono te metody. Obie metody są prawidłowe, ale druga metoda wymaga autoryzacji zestawu zakresów adresów IP na potrzeby dostępu do bazy danych.
Przy użyciu Jdbc.getCloudSqlConnection(url) (zalecane)
Ta metoda tworzy połączenie z instancją MySQL w Google Cloud SQL przy użyciu metody Jdbc.getCloudSqlConnection(url). Adres URL bazy danych ma postać jdbc:google:mysql://subname
, gdzie subname
to nazwa połączenia instancji MySQL podana na stronie Przegląd instancji Cloud SQL w konsoli Google Cloud.
Aby połączyć się z Cloud SQL SQL Server, zobacz Jdbc.getConnection(url).
Przy użyciu Jdbc.getConnection(url)
Aby używać tej metody, musisz autoryzować określone zakresy adresów IP Classless Inter-Domain Routing (CIDR), tak aby serwery Apps Script mogły łączyć się z Twoją bazą danych. Zanim uruchomisz skrypt, wykonaj te czynności:
W instancji Google Cloud SQL autoryzuj zakresy adresów IP, pojedynczo z tego źródła danych.
Skopiuj adres URL przypisany do bazy danych. Powinien mieć postać
jdbc:mysql:subname
.
Po autoryzacji tych zakresów adresów IP możesz tworzyć połączenia z instancją Google Cloud SQL przy użyciu jednej z metod Jdbc.getConnection(url) i skopiowanego powyżej adresu URL.
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 Apps Script.
Tworzenie innych połączeń z bazą danych
Aby utworzyć połączenie z bazą danych przy użyciu usługi JDBC Apps Script, musisz autoryzować zakresy adresów IP z tego źródła danych w ustawieniach bazy danych.
Gdy listy dozwolonych będą już dostępne, możesz utworzyć połączenie z bazą danych przy użyciu jednej z metod Jdbc.getConnection(url) i adresu URL bazy danych.
Przykładowy kod
W przykładowym kodzie poniżej założono, że łączysz się z bazą danych Google Cloud SQL i tworzy połączenia z bazą danych przy użyciu metody Jdbc.getCloudSqlConnection(url). W przypadku innych baz danych do tworzenia połączeń z bazami danych musisz używać metody Jdbc.getConnection(url).
Więcej informacji o metodach JDBC znajdziesz w dokumentacji Javy dla JDBC.
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. Dobrze jest utworzyć co najmniej 1 użytkownika, aby skrypt nie zawsze musiał łączyć się z bazą danych jako root
.
Zapisz w bazie danych
Poniższe przykłady pokazują, jak zapisać w bazie danych pojedynczy rekord, a także grupę 500 rekordów. Grupowanie jest kluczowe w przypadku operacji zbiorczych.
Pamiętaj też o korzystaniu z instrukcji z parametrami, w których zmienne są oznaczone znakiem ?
. Aby zapobiegać atakom polegającym na wstrzykiwaniu SQL, używaj instrukcji skontrolowanych w celu zmiany znaczenia wszystkich danych przekazywanych przez użytkowników.
Odczyt z bazy danych
Ten przykład pokazuje, jak odczytać dużą liczbę rekordów z bazy danych, w razie potrzeby zapętlaj zestaw wyników.
Zamykanie połączeń
Połączenia JDBC są zamykane automatycznie po zakończeniu wykonywania skryptu. Pamiętaj, że pojedyncze wywołanie google.script.run
liczy się jako pełne wykonanie, nawet jeśli strona usługi HTML, która spowodowała wywołanie, pozostaje otwarta.
Jeśli wiesz już, że połączenie, instrukcja lub wynik ustawiony przed zakończeniem skryptu są już gotowe, warto zamknąć je ręcznie, wywołując metodę JdbcConnection.close()
, JdbcStatement.close()
lub JdbcResultSet.close()
.
Wyświetlenie okna alertu lub promptu powoduje też zakończenie wszystkich otwartych połączeń JDBC. Inne elementy interfejsu, takie jak menu niestandardowe czy okna i paski boczne z niestandardową treścią, już ich nie zobaczą.
Google, Google Workspace oraz powiązane znaki i logotypy są znakami towarowymi firmy Google LLC. Wszystkie inne nazwy firm i produktów są znakami towarowymi odpowiednich podmiotów.