Heim > Artikel > Backend-Entwicklung > So betreiben Sie eine MySQL-Datenbank in der Go-Sprache
Go-Sprache ist eine Open-Source-Programmiersprache, die es einfach macht, einfache, zuverlässige und effiziente Software zu erstellen. In der Spalte Go-Sprach-Tutorial erfahren Sie, wie Sie die MySQL-Datenbank in der Go-Sprache bedienen.
Gehen Sie zur Sprache, um die MySQL-Datenbank zu betreiben:
Installieren Sie den Treiber für den Betrieb der MySQL-Datenbank
go get -u -v github.com/go-sql-driver/mysql
go Betreiben der MySQL-Datenbank
Einführungspaket
import _ "github.com/go-sql-driver/mysql"
Das Programm muss beim Betrieb der Datenbank nur Datenbank/SQL verwenden und muss daher den Datenbanktreiber nicht direkt verwenden Das Programm importiert den Datenbanktreiber. Setzen Sie den Namen dieses Pakets auf Unterstrich.
Stellen Sie mit der Methode sql.Open() eine Verbindung zur Datenbank her. Der erste Parameter der Methode open() ist der Treibername und der zweite Parameter ist die Verbindungszeichenfolge. Das Format ist: Benutzername:Passwort@. tcp(ip:port)/Datenbankname? Codierungsmethode, der Rückgabewert ist das Verbindungsobjekt und Fehlerinformationen, zum Beispiel:
conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/test?charset=utf8") defer conn.Close()//随手关闭数据库是个好习惯
Datenbankoperation durchführen.
Die Hauptmethoden der Datenbank sind:
Query führt den Abfragevorgang der Datenbank aus, z. B. eine Select-Anweisung, und der Rückgabedatentyp ist *Rows
QueryRow Führt die Datenbank aus und gibt höchstens ein Datenelement zurück.
Exec gibt keine Datenbankanweisung von Zeilen zurück, wie z . Bereiten Sie einen Datenbankabfragevorgang vor und geben Sie einen *Stmt für die nachfolgende Abfrage oder Ausführung zurück. Dieser Stmt kann mehrmals oder gleichzeitig ausgeführt werden
Tabelle erstellenDie Exec-Funktion lautet wie folgt:
func (db *DB) Exec(query string, args ...interface{}) (Result, error)
Die Methode zum Erstellen einer Tabelle ist auch Exec() , der Parameter ist die SQL-Anweisung und der Rückgabewert ist die Ergebnismenge und Fehlermeldung
Das Ergebnis enthält:
type Result interface { LastInsertId() (int64, error) RowsAffected() (int64, error) }
RowsAffected() Funktion, die kann Erhalten Sie die Auswirkungen auf die Datenbank nach erfolgreicher SQL-Ausführung.
res ,err:= conn.Exec("create table user(name VARCHAR(40),pwd VARCHAR(40))") beego.Info("create table result=",res.,err)Operationen hinzufügen, löschen und ändern
Exec() wird zum Ausführen der Anweisungen zum Hinzufügen, Löschen und Ändern von Operationen verwendet. Die Parameter sind SQL-Anweisungen und Der Rückgabewert besteht aus der Ergebnismenge und den Fehlerinformationen. Durch Vergleichen der Ergebnisse wird eine Beurteilung vorgenommen und Informationen zum Ausführungsergebnis erhalten. Am Beispiel des Einfügens von Daten lautet der Code wie folgt:
res,_:=stmt.Exec("insert user(name,pwd) values (?,?)","tony","tony") count,_:=res.RowsAffected() this.Ctx.WriteString(strconv.Itoa(int(count)))Abfrageoperation
Die verwendeten Funktionen sind Query() und QueryRow.
func (db *DB) QueryRow(query string, args ...interface{}) *Row func (db *DB) Query(query string, args ...interface{}) (*Rows, error)
Verwenden Sie QueryRow, um eine einzelne Zeilenabfrage zu implementieren. Sie können feststellen, dass das Abfrageergebnis der SQL-Anweisung ein Datensatz ist. Verwenden Sie die Funktion Scan(), um die Feldwerte im Ergebnis der Reihe nach zu extrahieren.
Verwenden Sie Query, um eine mehrzeilige Datenabfrage zu implementieren. Der Rückgabewert ist der Abfrageergebnissatz und die Fehlerinformationen. Nehmen Sie die Daten durch die nächsten und Scan-Funktionen zusammen heraus.
Der Code lautet wie folgt:
Einzeilige Abfrage:
row:= conn.QueryRow(`select * from user where userName = "wyj"`) var name,pwd string row.Scan(&name,&pwd) beego.Info(name,"------",pwd)
Mehrzeilige Abfrage:
data ,err :=conn.Query("SELECT name from user") var userName string if err == nil{ for data.Next(){ data.Scan(&userName) beego.Info(userName) } }
Alle Codes
//连接数据库 conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/testtest?charset=utf8") if err != nil{ beego.Info("链接失败") } defer conn.Close() //建表 res ,err:= conn.Exec("create table user(userName VARCHAR(40),passwd VARCHAR(40))") beego.Info("create table result=",res,err) //插入数据 res,err =conn.Exec("insert user(userName,passwd) values(?,?)","itcast","heima") beego.Info(res,err) //单行查询 row:= conn.QueryRow(`select * from user where userName = "wyj"`) var name,pwd string row.Scan(&name,&pwd) beego.Info(name,"------",pwd) //多行查询 data ,err :=conn.Query("SELECT userName from user") var userName string if err == nil{ for data.Next(){ data.Scan(&userName) beego.Error(userName) } }
Weitere Go-Sprachkenntnisse finden Sie in der Spalte
Go Language Tutorialauf der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonSo betreiben Sie eine MySQL-Datenbank in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!