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 Skript eine Verbindung zur Datenbank öffnen und dann Änderungen vornehmen, indem es SQL-Anweisungen sendet.
Google Cloud SQL-Datenbanken
Mit Google Cloud SQL können Sie relationale Datenbanken in der Google Cloud erstellen. Für Cloud SQL können je nach Nutzung Kosten anfallen.
Sie können eine Google Cloud SQL-Instanz erstellen, indem Sie die Schritte in der Cloud SQL-Kurzanleitung ausführen.
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) herstellen
- Verbindung mit Jdbc.getConnection(url) herstellen
Diese Methoden werden im Folgenden erläutert. Beide sind gültig, aber für die zweite Methode müssen Sie eine Reihe von IP-Bereichen für den Zugriff auf Ihre Datenbank autorisieren.
Jdbc.getCloudSqlConnection(url) verwenden (empfohlen)
Mit dieser Methode wird eine Verbindung zu einer Google Cloud SQL-MySQL-Instanz mit der Methode Jdbc.getCloudSqlConnection(url) hergestellt. Die Datenbank-URL hat das Format jdbc:google:mysql://subname
, wobei subname
der MySQL-Name der Instanzverbindung 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).
Mit Jdbc.getConnection(url)
Damit Sie diese Methode verwenden können, müssen Sie bestimmte CIDR-IP-Adressbereiche (Classless Inter-Domain Routing) autorisieren, damit die Server von Apps Script eine Verbindung zu Ihrer Datenbank herstellen können. Führen Sie vor dem Ausführen des Skripts die folgenden Schritte aus:
Autorisieren Sie die IP-Bereiche in Ihrer Google Cloud SQL-Instanz 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 Jdbc.getConnection(url)-Methoden 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 erstellen möchten, müssen Sie in den Datenbankeinstellungen IP-Bereiche aus dieser Datenquelle autorisieren.
Sobald diese Zulassungslisten eingerichtet sind, können Sie mit einer der Jdbc.getConnection(url)-Methoden und der URL Ihrer Datenbank eine Verbindung zur Datenbank herstellen.
Beispielcode
Im Beispielcode unten wird davon ausgegangen, dass Sie eine Verbindung zu einer Google Cloud SQL-Datenbank herstellen. Datenbankverbindungen werden mit der Methode Jdbc.getCloudSqlConnection(url) erstellt. Für andere Datenbanken müssen Sie die Methode Jdbc.getConnection(url) verwenden, um Datenbankverbindungen herzustellen.
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, wie unten gezeigt. Es empfiehlt sich, mindestens einen weiteren Nutzer zu erstellen, damit Ihr Skript nicht immer als root
eine Verbindung zur Datenbank herstellen 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. Batching 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
In diesem Beispiel wird gezeigt, wie eine große Anzahl von Datensätzen aus der Datenbank gelesen wird, wobei das Ergebnisset nach Bedarf durchlaufen wird.
Verbindungen schließen
JDBC-Verbindungen werden automatisch geschlossen, wenn die Ausführung eines Skripts abgeschlossen ist. Ein einzelner google.script.run
-Aufruf gilt als vollständige Ausführung, auch wenn die HTML-Dienstseite, von der der Aufruf stammt, geöffnet bleibt.
Wenn Sie jedoch wissen, dass Sie eine Verbindung, Anweisung oder ein Ergebnis-Set vor dem Ende des Skripts nicht mehr benötigen, sollten Sie sie manuell schließen, indem Sie JdbcConnection.close()
, JdbcStatement.close()
oder JdbcResultSet.close()
aufrufen.
Wenn ein Warn- oder Aufforderungsdialogfeld angezeigt wird, werden auch alle offenen JDBC-Verbindungen beendet. Andere UI-Elemente, die angezeigt werden, z. B. benutzerdefinierte Menüs oder Dialogfelder und Seitenleisten mit benutzerdefinierten Inhalten, sind davon jedoch nicht betroffen.
Google, Google Workspace sowie zugehörige Marken und Logos sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen sind Marken der jeweiligen Unternehmen.