Maison > développement back-end > Golang > Comment faire fonctionner la base de données MySQL en langage Go

Comment faire fonctionner la base de données MySQL en langage Go

Libérer: 2020-02-15 15:06:20
avant
5928 Les gens l'ont consulté

Le langage Go est un langage de programmation open source qui facilite la construction de logiciels simples, fiables et efficaces. La colonne Tutoriel du langage Go vous présentera comment utiliser la base de données MySQL dans le langage Go.

Comment faire fonctionner la base de données MySQL en langage Go

Allez dans la langue pour faire fonctionner la base de données MySQL :

Installez le pilote pour aller faire fonctionner MySQL

go get -u -v github.com/go-sql-driver/mysql
Copier après la connexion

aller faire fonctionner la base de données MySQL

Package d'introduction

import _ "github.com/go-sql-driver/mysql"
Copier après la connexion

Le programme n'a besoin d'utiliser que base de données/sql lors de l'exploitation de la base de données, et n'a pas besoin d'utiliser directement le pilote de base de données, donc le programme importe le pilote de base de données. Définissez le nom de ce package sur souligné.

Connectez-vous à la base de données à l'aide de la méthode sql.Open(). Le premier paramètre de la méthode open() est le nom du pilote et le deuxième paramètre est la chaîne de connexion. Le format est : username:password@. tcp(ip :port)/database name? Méthode de codage, la valeur de retour est l'objet de connexion et les informations d'erreur, par exemple :

conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
defer conn.Close()//随手关闭数据库是个好习惯
Copier après la connexion

Effectuer une opération de base de données.

Les principales méthodes de la base de données sont :

Query exécute l'opération de requête de la base de données, telle qu'une instruction Select, et le type de données de retour est *Rows

QueryRow exécute la base de données pour renvoyer au plus une donnée. Le type de données de retour est *Row

Exec. Le numéro d'exécution ne renvoie aucune instruction de base de données de lignes, telle que l'opération de suppression

PrePare. . Préparez une opération de requête de base de données et renvoyez un *Stmt pour une requête ultérieure ou Exec. Ce Stmt peut être exécuté plusieurs fois, ou exécuté simultanément

Créer une table

La fonction exec est la suivante :

func (db *DB) Exec(query string, args ...interface{}) (Result, error)
Copier après la connexion

La méthode de création d'un table est également Exec() , le paramètre est l'instruction SQL et la valeur de retour est l'ensemble de résultats et le message d'erreur

Le résultat contient :

type Result interface {
	LastInsertId() (int64, error)
	RowsAffected() (int64, error)
}
Copier après la connexion

Fonction RowsAffected(), qui peut. obtenir l'impact sur la base de données après avoir exécuté avec succès le nombre de lignes SQL.

res ,err:= conn.Exec("create table user(name VARCHAR(40),pwd VARCHAR(40))")
beego.Info("create table result=",res.,err)
Copier après la connexion

Opérations d'ajout, de suppression et de modification

Exec() est utilisé pour exécuter les instructions d'opération d'ajout, de suppression et de modification. Les paramètres sont des instructions SQL et. la valeur de retour est l'ensemble de résultats et les informations d'erreur. En comparant les résultats, définissez le jugement et obtenez les informations sur le résultat de l'exécution. En prenant l'exemple de l'insertion de données, le code est le suivant :

res,_:=stmt.Exec("insert user(name,pwd) values (?,?)","tony","tony")
count,_:=res.RowsAffected()
this.Ctx.WriteString(strconv.Itoa(int(count)))
Copier après la connexion

Opération de requête

Les fonctions utilisées sont Query() et QueryRow.

func (db *DB) QueryRow(query string, args ...interface{}) *Row
func (db *DB) Query(query string, args ...interface{}) (*Rows, error)
Copier après la connexion

Utilisez QueryRow pour implémenter une requête à une seule ligne peut déterminer que le résultat de la requête de l'instruction SQL est un enregistrement. Utilisez la fonction Scan() pour extraire les valeurs de champ dans le résultat dans l'ordre.

Utilisez Query pour implémenter une requête de données sur plusieurs lignes, et la valeur de retour est l'ensemble de résultats de la requête et les informations d'erreur. Retirez les données via les fonctions Next et Scan ensemble

Le code est le suivant :

Requête sur une seule ligne :

row:= conn.QueryRow(`select * from user where userName = "wyj"`)
var name,pwd string
row.Scan(&name,&pwd)
beego.Info(name,"------",pwd)
Copier après la connexion

Requête multi-ligne :

data ,err :=conn.Query("SELECT name from user")
	var userName string
	if err == nil{
		for data.Next(){
			data.Scan(&userName)
			beego.Info(userName)
		}
	}
Copier après la connexion

Tous les 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)
		}
	}
Copier après la connexion

Pour plus de connaissances sur le langage Go, veuillez faire attention à la colonne Tutoriel du langage Go sur le site Web PHP chinois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal