Apps Script kann über den JDBC-Dienst eine Verbindung zu externen Datenbanken herstellen, einem Wrapper für die standardmäßige Java Database Connectivity-Technologie. Der JDBC-Dienst unterstützt Google Cloud SQL for MySQL, MySQL, Microsoft SQL Server und Oracle Datenbanken.
Zum Aktualisieren einer externen Datenbank mit JDBC muss Ihr Skript eine Verbindung zur Datenbank öffnen und dann Änderungen vornehmen, indem Sie SQL-Anweisungen senden.
Google Cloud SQL-Datenbanken
Mit Google Cloud SQL können Sie relationale Datenbanken erstellen, die in der Cloud von Google sind. Beachten Sie, dass bei Cloud SQL je nach Nutzung Gebühren anfallen können.
Sie können eine Google Cloud SQL-Instanz erstellen, indem Sie der Anleitung in der Cloud SQL-Kurzanleitung folgen.
Google Cloud SQL-Verbindungen erstellen
Es gibt zwei Möglichkeiten, eine Verbindung zu einer Google Cloud SQL-Datenbank mit dem JDBC-Dienst von Apps Script herzustellen:
- (Empfohlen) Verbindung über Jdbc.getCloudSqlConnection(url)
- Mit Jdbc.getConnection(url) verbinden
Diese Methoden werden unten erläutert. Beide sind gültig, aber bei der zweiten Methode müssen Sie eine Reihe von IP-Bereichen für den Zugriff auf die Datenbank autorisieren.
Jdbc.getCloudSqlConnection(url) verwenden (empfohlen)
Diese Methode erstellt mithilfe der Methode Jdbc.getCloudSqlConnection(url) eine Verbindung zu einer Google Cloud SQL-MySQL-Instanz. Die Datenbank-URL hat das Format jdbc:google:mysql://subname
, wobei subname
der Instanzverbindungsname von MySQL ist, der auf der Seite Übersicht der Cloud SQL-Instanz in der Google Cloud Console aufgeführt ist.
Informationen zum Herstellen einer Verbindung zu Cloud SQL SQL Server finden Sie unter Jdbc.getConnection(url).
Jdbc.getConnection(url) verwenden
Damit Sie diese Methode verwenden können, müssen Sie bestimmte CIDR-Adressbereiche (Classless Inter-Domain Routing) autorisieren, damit die Server von Apps Script eine Verbindung zu Ihrer Datenbank herstellen können. Führen Sie die folgenden Schritte aus, bevor Sie das Skript ausführen:
Autorisieren Sie in Ihrer Google Cloud SQL-Instanz die IP-Bereiche nacheinander aus dieser Datenquelle.
Kopieren Sie die URL, die Ihrer Datenbank zugewiesen wurde. Sie sollte das Format
jdbc:mysql:subname
haben.
Nachdem Sie diese IP-Bereiche autorisiert haben, können Sie mit der Methode Jdbc.getConnection(url) und der oben kopierten URL Verbindungen zu Ihrer Google Cloud SQL-Instanz erstellen.
Andere Datenbanken
Wenn Sie bereits eine eigene MySQL-, Microsoft SQL Server- oder Oracle-Datenbank haben, können Sie über den JDBC-Dienst von Apps Script eine Verbindung herstellen.
Weitere Datenbankverbindungen erstellen
Wenn Sie eine Datenbankverbindung mit dem JDBC-Dienst von Apps Script erstellen möchten, müssen Sie in Ihren Datenbankeinstellungen IP-Bereiche aus dieser Datenquelle autorisieren.
Sobald diese Zulassungslisten vorhanden sind, können Sie mit einer der Methoden Jdbc.getConnection(url) und der URL der Datenbank eine Verbindung zur Datenbank herstellen.
Beispielcode
Im Beispielcode wird davon ausgegangen, dass Sie eine Verbindung zu einer Google Cloud SQL-Datenbank herstellen und Datenbankverbindungen mit der Methode Jdbc.getCloudSqlConnection(url) herstellen. Für andere Datenbanken müssen Sie die Methode Jdbc.getConnection(url) verwenden, um Datenbankverbindungen zu erstellen.
Weitere Informationen zu den JDBC-Methoden finden Sie in der Java-Dokumentation für JDBC.
Datenbank, Nutzer und Tabelle erstellen
Die meisten Entwickler verwenden das MySQL-Befehlszeilentool, um Datenbanken, Nutzer und Tabellen zu erstellen. Mit Apps Script ist das jedoch möglich. Es empfiehlt sich, mindestens einen weiteren Nutzer zu erstellen, damit nicht immer eine Verbindung zur Datenbank als root
hergestellt werden muss.
In die Datenbank schreiben
Die folgenden Beispiele zeigen, wie ein einzelner Datensatz in einen Batch mit 500 Einträgen in die Datenbank geschrieben wird. Die Batchverarbeitung ist für Bulk-Vorgänge unerlässlich.
Beachten Sie auch die Verwendung parametrisierter Anweisungen, in denen die Variablen durch ?
gekennzeichnet sind. Um SQL-Injection-Angriffe zu verhindern, sollten Sie parametrisierte Anweisungen verwenden, um alle vom Nutzer bereitgestellten Daten zu maskieren.
Aus der Datenbank lesen
Dieses Beispiel zeigt, wie eine große Anzahl von Datensätzen aus der Datenbank gelesen und die Ergebnismenge nach Bedarf als Schleife wiedergegeben wird.
Verbindungen schließen
JDBC-Verbindungen werden automatisch geschlossen, wenn die Ausführung eines Skripts abgeschlossen ist. Hinweis: Ein einzelner google.script.run
-Aufruf gilt als vollständige Ausführung, auch wenn die HTML-Dienstseite, die den Aufruf ausgeführt hat, geöffnet bleibt.
Wenn Sie jedoch wissen, dass Sie eine Verbindung, eine Anweisung oder eine Ergebnismenge vor dem Ende des Skripts abgeschlossen haben, sollten Sie diese manuell schließen, indem Sie JdbcConnection.close()
, JdbcStatement.close()
oder JdbcResultSet.close()
aufrufen.
Wenn ein Benachrichtigungs- oder Aufforderungsdialogfeld angezeigt wird, werden auch alle offenen JDBC-Verbindungen beendet. Andere Elemente der Benutzeroberfläche, z. B. benutzerdefinierte Menüs oder Dialogfelder und Seitenleisten mit benutzerdefinierten Inhalten, sind jedoch nicht sichtbar.
Google, Google Workspace sowie zugehörige Warenzeichen und Logos sind Marken von Google LLC. Alle anderen Firmen- und Produktnamen sind Marken der jeweiligen Unternehmen.