Heim > Artikel > Backend-Entwicklung > Lernen Sie die Go-Sprache, um die MySQL-Vorverarbeitung durchzuführen
Freundliche Erinnerung: Das Lesen dieses Artikels dauert etwa 6 Minuten und 41 Sekunden. Vielen Dank für das Lesen. Diese Website abonnieren
Vorverarbeitung ist eine von MySQL verwendete Technologie, um häufige Anfragen von Clients zu verhindern Dieselbe Anweisung ist in MySQL vorinstalliert, die Betriebsvariablendaten werden durch Platzhalter ersetzt, wodurch häufige Anfragen an MySQL reduziert werden und der Server effizient läuft.
Hier ist der Client nicht die C/S-Architektur zwischen Front- und Backend, sondern die C/S-Architektur, in der das Hintergrundprogramm den Datenbankserver betreibt. Auf diese Weise können Sie das Hintergrundprogramm kurz verstehen Der Client fordert den MySQL-Server an und verarbeitet die Ergebnisse.
Verwandte Lernempfehlungen: GO-Sprach-Tutorial
Gewöhnlicher SQL-Ausführungsverarbeitungsprozess:
SQL in Strukturteil und Datenteil aufteilen
; Wenn Sie eine SQL-Anweisung ausführen, senden Sie zunächst denselben Befehls- und Strukturteil an den MySQL-Server, damit der MySQL-Server die Vorverarbeitung im Voraus durchführen kann (die SQL-Anweisung wird zu diesem Zeitpunkt noch nicht tatsächlich ausgeführt).func (db *DB) Prepare(query string) (*Stmt, error)Prepare führt die Vorverarbeitungs-SQL-Anweisung aus und gibt den Stmt-Strukturzeiger für Datenbindungsvorgänge zurück.
, um Vorverarbeitungs-SQL zu deklarieren, verwenden db.Prepare()
, um Platzhalter durch Daten für die Abfrage zu ersetzen, und Aktualisierungs-, Einfügungs- und Löschvorgänge mithilfe von
db.Prepare()
Beispiel für eine Vorverarbeitungsabfragestmt.Query()
// 预处理查询数据func prepareQuery() { sqlStr := "SELECT id,name,age FROM user WHERE id > ?" stmt, err := db.Prepare(sqlStr) if err != nil { fmt.Printf("prepare sql failed, err:%v\n", err) return } rows, err := stmt.Query(1) if err != nil { fmt.Printf("exec failed, err:%v\n", err) return } defer rows.Close() for rows.Next() { var u user err := rows.Scan(&u.id, &u.name, &u.age) if err != nil { fmt.Printf("scan data failed, err:%v\n", err) return } fmt.Printf("id:%d, name:%s, age:%d\n", u.id, u.name, u.age) }}
stmt.Exec()
// 预处理更新数据func prepareUpdate() { sqlStr := "UPDATE user SET age = ? WHERE id = ?" stmt, err := db.Prepare(sqlStr) if err != nil { fmt.Printf("prepare sql failed, err:%v\n", err) return } _, err = stmt.Exec(18, 2) if err != nil { fmt.Printf("exec failed, err:%v\n", err) return } fmt.Printf("prepare update data success")}
// 预处理更新数据func prepareUpdate() { sqlStr := "UPDATE user SET age = ? WHERE id = ?" stmt, err := db.Prepare(sqlStr) if err != nil { fmt.Printf("prepare sql failed, err:%v\n", err) return } _, err = stmt.Exec(18, 2) if err != nil { fmt.Printf("exec failed, err:%v\n", err) return } fmt.Printf("prepare update data success")}
// 预处理删除数据func prepareDelete() { sqlStr := "DELETE FROM user WHERE id = ?" stmt, err := db.Prepare(sqlStr) if err != nil { fmt.Printf("prepare sql failed, err:%v\n", err) return } result, err := stmt.Exec(3) n, err := result.RowsAffected() if err != nil { fmt.Printf("delete rows failed, err:%v\n", err) return } if n > 0 { fmt.Printf("delete data success") } else { fmt.Printf("delete data error") }
Das obige ist der detaillierte Inhalt vonLernen Sie die Go-Sprache, um die MySQL-Vorverarbeitung durchzuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!