Heim > Datenbank > MySQL-Tutorial > So extrahieren Sie Daten aus einer MySQL-Datenbank mithilfe der Go-Sprache

So extrahieren Sie Daten aus einer MySQL-Datenbank mithilfe der Go-Sprache

PHPz
Freigeben: 2023-06-17 22:21:08
Original
971 Leute haben es durchsucht

MySQL ist eine sehr beliebte relationale Datenbank und die Go-Sprache ist eine sich schnell entwickelnde Programmiersprache. Wenn Sie beide kombinieren, können Sie eine bequeme und effiziente Datenextraktion erreichen. In diesem Artikel wird die Methode zur Verwendung der Go-Sprache zum Extrahieren von MySQL-Daten vorgestellt. Ich hoffe, dass sie alle inspirieren und helfen kann.

1. Installieren und konfigurieren Sie den MySQL-Treiber

Bevor wir die Go-Sprache zum Extrahieren von MySQL-Daten verwenden, müssen wir zuerst den MySQL-Treiber installieren. Es gibt viele Möglichkeiten für MySQL-Treiber. Hier stellen wir die beiden am häufigsten verwendeten vor: go-sql-driver und mysql-Treiber.

Zur Installation mit go-sql-driver können Sie den folgenden Befehl verwenden:

go get -u github.com/go-sql-driver/mysql
Nach dem Login kopieren

Zur Installation mit mysql-Treiber können Sie den folgenden Befehl verwenden:

go get -u github.com/mysql/mysql-go
Nach dem Login kopieren

Nach Abschluss der Installation importieren Sie das entsprechende Treiberpaket in Code, zum Beispiel:

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)
Nach dem Login kopieren

Aber es ist zu beachten, dass Sie bei Verwendung des MySQL-Treibers auch MySQL konfigurieren müssen. Die spezifische Methode lautet wie folgt:

  1. Stellen Sie den Zeichensatz von MySQL auf utf8mb4 ein

In Versionen Vor MySQL 5.7.7 ist der Standardzeichensatz utf8, der nur 3-Byte-Unicode-Zeichen unterstützt. In den Versionen 5.7.7 und höher wird standardmäßig der utf8mb4-Zeichensatz verwendet, der 4-Byte-Unicode-Zeichen unterstützt Konfigurationsdatei Der Zeichensatzserver in my.cnf oder my.ini ist auf utf8mb4 eingestellt, um den Effekt zu erzielen, dass Sonderzeichen wie Chinesisch unterstützt werden.

  1. Binlog-Protokoll aktivieren

In MySQL zeichnet das Binlog-Protokoll alle SQL-Anweisungen auf, die auf MySQL ausgeführt werden. Daher müssen Sie beim Extrahieren von Daten das Binlog-Protokoll für die Echtzeit-Datensynchronisierung aktivieren. Es kann in my.cnf oder my.ini konfiguriert und aktiviert werden.

2. Stellen Sie eine Verbindung zur MySQL-Datenbank her.

Nachdem wir den MySQL-Treiber installiert und entsprechend konfiguriert haben, müssen wir als Nächstes eine Verbindung zur MySQL-Datenbank herstellen. Die Methode zum Herstellen einer Verbindung zur MySQL-Datenbank lautet wie folgt:

db, err := sql.Open("mysql", "user:password@tcp(ip:port)/database")
Nach dem Login kopieren

Dabei sind Benutzer und Passwort der MySQL-Benutzername und das MySQL-Passwort, IP und Port sind die MySQL-Verbindungsadresse und Portnummer und Datenbank ist die Datenbank, auf die zugegriffen werden soll.

Nach erfolgreicher Verbindung mit der MySQL-Datenbank können wir entsprechende Datenvorgänge ausführen, z. B. das Lesen von Daten in MySQL in die Go-Sprache oder das Speichern von Daten in der Go-Sprache in MySQL.

3. SQL-Anweisungsabfrage

Es ist sehr einfach, SQL-Anweisungen zum Abfragen von Daten in MySQL in der Go-Sprache zu verwenden. Wir können die Funktion sql.Query verwenden, um die Abfrageanweisung auszuführen und die Ergebnisse im Zeilenobjekt zu speichern, z. B.:

rows, err := db.Query("SELECT * FROM table1")
Nach dem Login kopieren

Nach erfolgreicher Ausführung können Sie die Funktion Next des Zeilenobjekts verwenden, um die Ergebnisse jedes Mal zu durchlaufen Sie können einen Datensatz herausnehmen und ihn in das entsprechende Strukturobjekt kapseln:

type Product struct {
    ID         int64  `db:"id"`
    Name       string `db:"name"`
    Price      int64  `db:"price"`
    CreateTime int64  `db:"create_time"`
}

func main() {
    rows, err := db.Query("SELECT * FROM product")  // 查询product表
    if err != nil {
        panic(err)
    }

    defer rows.Close()

    products := make([]Product, 0)

    for rows.Next() {  // 遍历结果集
        var p Product
        err = rows.Scan(&p.ID, &p.Name, &p.Price, &p.CreateTime)  // 将一条记录封装到Product对象中
        if err != nil {
            panic(err)
        }
        products = append(products, p)
    }
}
Nach dem Login kopieren

Die Methode zum Abfragen eines einzelnen Datensatzes mit der Funktion sql.QueryRow ist ebenfalls sehr einfach:

var p Product
err := db.QueryRow("SELECT * FROM product WHERE id=?", 1).Scan(&p.ID, &p.Name, &p.Price, &p.CreateTime)
if err != nil {
    panic(err)
}
Nach dem Login kopieren

4. Daten einfügen

Es ist auch sehr einfach um die Go-Sprache zum Einfügen von Daten in MySQL zu verwenden. Um dies zu erreichen, können wir die Funktion sql.Exec verwenden, um die SQL-Anweisung auszuführen:

stmt, err := db.Prepare("INSERT INTO product(name, price) VALUES(?,?)")
if err != nil {
    panic(err)
}

res, err := stmt.Exec("Product1", 100)
if err != nil {
    panic(err)
}
Nach dem Login kopieren

Die Prepare-Funktion im obigen Code wird verwendet, um die SQL-Anweisung vorzubereiten, und dann die Exec-Funktion verwenden, um die SQL-Anweisung auszuführen und das Ergebnis zurückzugeben . Bei erfolgreicher Ausführung enthält das zurückgegebene Ergebnis die ID der eingefügten Daten (falls vorhanden), die mit der Funktion LastInsertId abgerufen werden kann. Wenn Sie die Anzahl der betroffenen Zeilen ermitteln müssen, können Sie die Funktion „RowsAffected“ verwenden. 5. Daten aktualisieren und löschen Manchmal ist es notwendig, die Atomizität der Daten sicherzustellen, dh alle Datenbankvorgänge sind entweder erfolgreich oder fehlschlagen. An diesem Punkt können wir den Transaktionsverwaltungsmechanismus verwenden, um dies zu erreichen.

In der Go-Sprache können Sie db.Begin und tx.Commit verwenden, um Transaktionen zu öffnen und zu übermitteln, wie zum Beispiel:

// 执行更新操作
stmt, err := db.Prepare("UPDATE product SET price=? WHERE id=?")
if err != nil {
    panic(err)
}

res, err := stmt.Exec(200, 1)
if err != nil {
    panic(err)
}

// 执行删除操作
stmt, err = db.Prepare("DELETE FROM product WHERE id=?")
if err != nil {
    panic(err)
}

res, err = stmt.Exec(1)
if err != nil {
    panic(err)
}
Nach dem Login kopieren

Im obigen Code können wir nach dem Öffnen der Transaktion mehrere SQL-Operationen in der Transaktion ausführen. Nachdem Sie alle SQL-Operationen ausgeführt und die Atomizität aller SQL-Operationen sichergestellt haben, müssen Sie die Funktion Commit() verwenden, um die Transaktion festzuschreiben. Wenn bei einer SQL-Operation ein Fehler auftritt, können Sie die Funktion Rollback() verwenden, um die Transaktion rückgängig zu machen.

7. Fazit

In diesem Artikel wird die Methode zur Verwendung der Go-Sprache zum Extrahieren von Daten aus der MySQL-Datenbank vorgestellt. Durch die obige Einführung können wir feststellen, dass die Verwendung der Go-Sprache zum Durchführen von Datenoperationen in der MySQL-Datenbank sehr praktisch und effizient ist. Wenn Sie noch nicht versucht haben, die Go-Sprache für Datenbankoperationen zu verwenden, können Sie es genauso gut versuchen. Ich glaube, Sie werden sich in sie verlieben.

Das obige ist der detaillierte Inhalt vonSo extrahieren Sie Daten aus einer MySQL-Datenbank mithilfe der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage