Heim > Backend-Entwicklung > Golang > So betreiben Sie eine MySQL-Datenbank in der Go-Sprache

So betreiben Sie eine MySQL-Datenbank in der Go-Sprache

Freigeben: 2020-02-15 15:06:20
nach vorne
6035 Leute haben es durchsucht

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.

So betreiben Sie eine MySQL-Datenbank in der Go-Sprache

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
Nach dem Login kopieren

go Betreiben der MySQL-Datenbank

Einführungspaket

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

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()//随手关闭数据库是个好习惯
Nach dem Login kopieren

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 erstellen

Die Exec-Funktion lautet wie folgt:

func (db *DB) Exec(query string, args ...interface{}) (Result, error)
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)))
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
		}
	}
Nach dem Login kopieren

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)
		}
	}
Nach dem Login kopieren

Weitere Go-Sprachkenntnisse finden Sie in der Spalte

Go Language Tutorial

auf 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!

Verwandte Etiketten:
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