Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Postgres ist aufgrund seiner vielen Funktionen und Benutzerfreundlichkeit eine der beliebtesten SQL-Datenbanken. Postgres ist ACID-konform mit Funktionen wie Multi-Version Concurrency Control, asynchroner Replikation, verschachtelten Transaktionen und Write-Ahead-Protokollierung. Zusammen mit vielen anderen machen diese Funktionen Postgres zum idealen SQL-Datenbankverwaltungssystem.

Das Go-Ökosystem beherbergt viele Pakete für die Interaktion mit verschiedenen DBMS, einschließlich Postgres. Go bietet das integrierte Datenbank/sql Paket für die Arbeit mit SQL-Datenbanken unter Verwendung von Datenbanktreibern. Mithilfe von Go-Datenstrukturen können Sie beliebte ORMs von Drittanbietern wie GORM für eine einfache Interaktion mit Ihrer Datenbank integrieren.

Erste Schritte mit GORM und Postgres

Das GORM-Paket ist eines der beliebtesten ORMs im Go-Ökosystem, weil es entwicklerfreundlich und funktionsreich ist und darauf aufbaut

instagram viewer
Die Datenbank/sql Paket.

GORM bietet Funktionen für automatische Migrationen, Protokollierung, vorbereitete Anweisungen, Transaktionen und Sharding. Das Paket verfolgt den Code-First-Ansatz mit Strukturen und anderen integrierten Datentypen.

Führen Sie diesen Terminalbefehl in Ihrem Arbeitsverzeichnis aus, um das GORM-Paket zu den Abhängigkeiten Ihres Projekts hinzuzufügen:

gehen Holen Sie sich gorm.io/gorm\n

Sie benötigen einen Datenbanktreiber, um mit dem GORM-Paket zu arbeiten. GORM bietet Datenbanktreiber für gängige DBMS. Führen Sie diesen Befehl in Ihrem Arbeitsverzeichnis aus, um GORM zu installieren Postgres Treiber:

gehen Holen Sie sich gorm.io/driver/postgres\n

Verbinden von Postgres mit Go mit GORM

Importieren Sie diese Pakete in Ihre Go-Datei, um mit dem ORM- und Datenbanktreiber zu arbeiten. Sie verwenden die Protokoll Paket zum Protokollieren von Fehlern in Ihrer Konsole und dem fmt Paket, um die Ausgabe zu drucken.

importieren (\N "fmt"\N "gorm.io/driver/postgres"\N "gorm.io/gorm"\N "Protokoll"\n)\n

Sie benötigen eine Verbindungszeichenfolge, um eine Verbindung zu Ihrem herzustellen Postgres-Datenbank in der Laufumgebung. Sie können eine Struktur als Modell für die Felder verwenden, aus denen die Verbindungszeichenfolge besteht. Die Verwendung einer Struktur erleichtert das Ändern und Testen verschiedener Werte, insbesondere in Fällen von Abhängigkeitsinjektion.

Hier ist ein Beispiel für ein Strukturmodell für die Felder, aus denen die Verbindungszeichenfolge besteht:

Typ Konfig Struktur {\n Gastgeber Schnur\n Hafen Schnur\n Passwort Schnur\n Benutzer Schnur\n DBName Schnur\n SSLMode Schnur\n}\n

Nachfolgend finden Sie eine typische Funktion für Ihre Datenbankverbindung. Es gibt die Verbindungsinstanz und je nach Verbindungsstatus einen Fehler zurück.

FunkNeue Verbindung()(*gorm. DB, Fehler) {\N zurückkehren DB, Null\n}\n

Sie können das Verbindungsstrukturmodell instanziieren und die Felder mit den Werten in Ihrer Postgres-Datenbank füllen.

 Konfigurationen := Konfig{\n Host: "Datenbank_Host",\n Anschluss: "Datenbank_Port",\n Passwort: "Datenbank_Passwort",\n Benutzer: "Datenbank_Benutzer",\n DBName: "Name der Datenbank",\n SSLMode: "FALSCH",\n }\n dsn := fmt. Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", Konfigurationen. Host, Konfigurationen. Hafen, Konfigurationen. Benutzer, Konfigurationen. Passwort, Konfigurationen. DBName, Konfigurationen. SSLMode)\n

Der dsn Variable verwendet die Sprintf Formatierungsmethode u Gehen Sie zu String-Formatierungsverben um die Felder der zu verketten Konfig struct und richten Sie die Postgres-Verbindungszeichenfolge ein.

Sie können eine Datenbankverbindung mit GORM über die öffnen Offen Methode. Der Offen -Methode übernimmt eine offene Verbindung von einem Datenbanktreiber und eine Liste optionaler Konfigurationen aus der Konfig Typ des GORM-Pakets. Es gibt eine Verbindungsinstanz und einen optionalen Fehler zurück.

 db, err := gorm. Öffnen (postgres. Offen (dsn), &gorm. Konfig{})\n Wenn äh != Null {\N zurückkehren db, err\n }\n

Pingen der Datenbank, um den Verbindungsstatus zu überprüfen

Sie können Ihre Datenbank anpingen, um den Integritäts-/Onlinestatus mit einer Funktion zu überprüfen, die ein boolesches Ergebnis oder einen Fehler zurückgibt, wenn die Datenbankverbindung ungültig ist.

FunkPingDb()(bool, Fehler) {\n\n zurückkehrenWAHR, Null\n}\n

Sie müssen eine neue Verbindungsinstanz erstellen, um die Datenbank zu pingen. Hier ist ein Beispiel mit der Neue Verbindung Funktion zum Erstellen einer Verbindungsinstanz:

 connectionInstance, err := NewConnection()\n Wenn äh != Null {\n Protokoll. Tödlich ("Die Datenbankverbindung ist fehlgeschlagen %v", irren. Fehler())\n }\n

Sobald Sie eine Verbindungsinstanz erhalten haben, erstellen Sie eine Datenbankinstanz mit der DB Methode der Verbindung.

 dbConnection, err := Verbindungsinstanz. DB()\n Wenn äh != Null {\N zurückkehrenFALSCH, äh\n } \n

Sie können die Datenbank mit pingen Klingeln Methode der Datenbankinstanz. Der Klingeln Methode gibt alle Fehler zurück oder Null ob die Verbindung erfolgreich war.

\n err = dbConnection. Ping()\n Wenn äh != Null {\N zurückkehrenFALSCH, äh\n } anders {\n \n fmt. Println("Die Verbindung war erfolgreich")\n }\n

Eine erfolgreiche Ausführung sollte zu einer Ausgabe ähnlich der folgenden führen:

Sie können das database/sql-Paket verwenden, um mit der SQL-Datenbank in Go zu arbeiten

Der Datenbank/sql Das Paket ist erweiterbar, und da die meisten Go-Datenbankpakete und -Treiber das Paket erweitern, können Sie das Paket in Ihren Projekten verwenden, anstatt sich für ORMs zu entscheiden.

GORM bietet auch einen SQL-Builder zum Erstellen von Roh-SQL, was für nicht unterstützte Operationen hilfreich ist.