Heim >Datenbank >MySQL-Tutorial >So implementieren Sie eine MySQL-Operation in Golang
Stellen Sie zunächst sicher, dass Sie Golang und MySQL korrekt installiert haben und dass Sie auch den MySQL-Treiber für Go installieren müssen. Dies geht ganz einfach mit dem folgenden Befehl:
go get -u github.com/go-sql-driver/mysql
Bevor wir das Go-Programm erstellen, müssen wir außerdem eine MySQL-Datenbank und eine Tabelle erstellen, um die Methode zur Verwendung von Golang für Datenbankoperationen zu demonstrieren.
Angenommen, wir haben eine Datenbank mit dem Namen „test_db“ erstellt und sie enthält eine Tabelle mit dem Namen „users“. Die Struktur der Tabelle ist wie folgt:
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `age` smallint(6) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Als nächstes können wir mit dem Schreiben von Golang-Programmen beginnen. Das Folgende ist ein einfaches Programmbeispiel, das zeigt, wie man mit dem Golang-Treiber eine Verbindung zur MySQL-Datenbank herstellt und einige grundlegende Abfragevorgänge durchführt:
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 连接 MySQL 数据库 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4") if err != nil { panic(err.Error()) } defer db.Close() // 执行查询操作 rows, err := db.Query("SELECT * FROM users") if err != nil { panic(err.Error()) } defer rows.Close() // 遍历查询结果 for rows.Next() { var id int var name string var email string var age int err := rows.Scan(&id, &name, &email, &age) if err != nil { panic(err.Error()) } fmt.Println(id, name, email, age) } // 检查是否存在错误 err = rows.Err() if err != nil { panic(err.Error()) } }
Durch Ausführen des obigen Programms können wir erfolgreich eine Verbindung zur MySQL-Datenbank herstellen und mithilfe des „ SELECT-Anweisung Alle Datensätze in der Tabelle „Benutzer“ und Ausdrucken der Ergebnisse.
Zusätzlich zu Abfragen können wir den Golang-Treiber auch verwenden, um andere gängige MySQL-Vorgänge wie Einfügungen, Aktualisierungen und Löschungen auszuführen. Das Folgende ist ein einfaches Programmbeispiel:
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 连接 MySQL 数据库 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4") if err != nil { panic(err.Error()) } defer db.Close() // 插入一条记录 stmt, err := db.Prepare("INSERT INTO users(name, email, age) VALUES(?, ?, ?)") if err != nil { panic(err.Error()) } defer stmt.Close() result, err := stmt.Exec("Tom", "tom@email.com", 30) if err != nil { panic(err.Error()) } lastInsertId, _ := result.LastInsertId() fmt.Println("新增记录的 ID:", lastInsertId) // 更新一条记录 stmt, err = db.Prepare("UPDATE users SET name=?, age=? WHERE id=?") if err != nil { panic(err.Error()) } defer stmt.Close() result, err = stmt.Exec("Jerry", 25, 1) if err != nil { panic(err.Error()) } affectRow, _ := result.RowsAffected() fmt.Println("受影响的行数:", affectRow) // 删除一条记录 stmt, err = db.Prepare("DELETE FROM users WHERE id=?") if err != nil { panic(err.Error()) } defer stmt.Close() result, err = stmt.Exec(1) if err != nil { panic(err.Error()) } affectRow, _ = result.RowsAffected() fmt.Println("受影响的行数:", affectRow) }
Mit dem obigen Programmbeispiel können wir gängige MySQL-Vorgänge wie Einfügen, Aktualisieren und Löschen erfolgreich ausführen.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine MySQL-Operation in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!