Apps Script kann Verbindungen zu externen Datenbanken über den JDBC-Dienst herstellen. Dies ist ein Wrapper für die Standardtechnologie der Java-Datenbankkonnektivität. Der JDBC-Dienst unterstützt Google Cloud SQL for MySQL, MySQL, Microsoft SQL Server und Oracle-Datenbanken.
Wenn Sie eine externe Datenbank mit JDBC aktualisieren möchten, muss Ihr Script eine Verbindung zur Datenbank herstellen und dann Änderungen durch Senden von SQL-Anweisungen vornehmen.
Google Cloud SQL-Datenbanken
Mit Google Cloud SQL können Sie relationale Datenbanken in der Cloud von Google erstellen. Für die Nutzung von Cloud SQL können je nach Nutzung Kosten anfallen.
Sie können eine Google Cloud SQL-Instanz erstellen, indem Sie der Cloud SQL-Kurzanleitung folgen.
Google Cloud SQL-Verbindungen erstellen
Es gibt zwei Möglichkeiten, mit dem JDBC-Dienst von Apps Script eine Verbindung zu einer Google Cloud SQL-Datenbank herzustellen:
- (Empfohlen) Verbindung über Jdbc.getCloudSqlConnection(url)
- Verbindung über Jdbc.getConnection(url)
Diese Methoden werden unten erläutert. Beide Methoden sind gültig, aber bei der zweiten Methode müssen Sie eine Reihe von IP-Bereichen für den Zugriff auf Ihre Datenbank autorisieren.
Mit Jdbc.getCloudSqlConnection(url) (empfohlen)
Mit dieser Methode wird mithilfe der Methode Jdbc.getCloudSqlConnection(url) eine Verbindung zu einer Google Cloud SQL for MySQL-Instanz hergestellt. Die Datenbank-URL hat das Format jdbc:google:mysql://subname
, wobei subname
der Verbindungsname der MySQL-Instanz 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 for SQL Server finden Sie unter Jdbc.getConnection(url).
Mit Jdbc.getConnection(url)
Wenn Sie diese Methode verwenden möchten, müssen Sie bestimmte CIDR-IP-Adressbereiche (Classless Inter-Domain Routing) autorisieren, damit die Apps Script-Server eine Verbindung zu Ihrer Datenbank herstellen können. Führen Sie vor dem Ausführen des Scripts die folgenden Schritte aus:
Autorisieren Sie in Ihrer Google Cloud SQL-Instanz die IP-Bereiche, jeweils einzeln 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 einer der Methoden Jdbc.getConnection(url) und der oben kopierten URL Verbindungen zu Ihrer Google Cloud SQL-Instanz herstellen.
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 dazu herstellen.
Andere Datenbankverbindungen erstellen
Wenn Sie eine Datenbankverbindung mit dem JDBC-Dienst von Apps Script herstellen 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 Ihrer Datenbank eine Verbindung zur Datenbank herstellen.
Beispielcode
Im folgenden Beispielcode wird davon ausgegangen, dass Sie eine Verbindung zu einer Google Cloud SQL-Datenbank herstellen. Es werden Datenbankverbindungen mit der Methode Jdbc.getCloudSqlConnection(url) erstellt. 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. Das ist jedoch auch in Apps Script möglich, wie unten gezeigt. Es ist empfehlenswert, mindestens einen weiteren Nutzer zu erstellen, damit Ihr Script nicht immer als root
mit der Datenbank verbunden werden muss.
In die Datenbank schreiben
In den folgenden Beispielen wird gezeigt, wie ein einzelner Datensatz und ein Batch mit 500 Datensätzen in die Datenbank geschrieben werden. Batch-Verarbeitung 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 alle von Nutzern bereitgestellten Daten mithilfe von parametrisierten Anweisungen ausgeben.
Aus der Datenbank lesen
In diesem Beispiel wird gezeigt, wie eine große Anzahl von Datensätzen aus der Datenbank gelesen und bei Bedarf eine Schleife über den Ergebnissatz ausgeführt wird.
Verbindungen schließen
JDBC-Verbindungen werden automatisch geschlossen, wenn die Ausführung eines Scripts abgeschlossen ist. Hinweis: Ein einzelner google.script.run
-Aufruf gilt als vollständige Ausführung, auch wenn die HTML-Dienstseite, über die der Aufruf erfolgt, geöffnet bleibt.
Wenn Sie jedoch wissen, dass Sie vor dem Ende des Scripts mit einer Verbindung, Anweisung oder einem Ergebnissatz fertig sind, sollten Sie sie manuell schließen, indem Sie JdbcConnection.close()
, JdbcStatement.close()
oder JdbcResultSet.close()
aufrufen.
Wenn ein Warn- oder Prompt-Dialogfeld angezeigt wird, werden auch alle geöffneten JDBC-Verbindungen beendet. Andere angezeigte UI-Elemente wie benutzerdefinierte Menüs oder Dialogfelder und Seitenleisten mit benutzerdefinierten Inhalten sind jedoch davon ausgenommen.
Google, Google Workspace und zugehörige Marken und Logos sind Marken von Google LLC. Alle anderen Firmen- und Produktnamen sind Marken der jeweiligen Unternehmen.