Maison > développement back-end > Golang > le corps du texte

Introduction aux opérations Golang MySQL

Libérer: 2020-02-26 17:39:25
avant
3003 Les gens l'ont consulté

Go (également connu sous le nom de Golang) est un langage de programmation concurrent, compilé et fortement typé, doté de capacités de récupération de place développées par Google. Ci-dessous, je présenterai quelques opérations sur MySQL à partir de la colonne Go Getting Started Tutorial.

Introduction aux opérations Golang MySQL

go exploite la base de données mysql. La bibliothèque utilisée est go-sql-driver/mysql Installez directement go get

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

sql.DB<. 🎜>

Les fonctions disponibles pour le type DB sont :

1. Requête (chaîne c, interface args{}…) (*Lignes, erreur), couramment utilisée dans les instructions SELECT

2. Exec(c string, args interface{}…) (*Rows, erreur), couramment utilisé avec UPDATE et INSERT

3. Prepare(c string) (*Stmt, erreur), autre. les instructions peuvent également être utilisées pour exécuter l'instruction ci-dessus et renvoyer le pointeur Stmt

sql.Stmt

Stmt est une instruction préparée qui peut exécuter des opérations d'instruction de base de données communes. les fonctions sont :

Exec(args interface{} …) (Résultat, erreur), étant donné les paramètres et exécute l'instruction préparée, puis renvoie le résultat total de l'instruction

//...
	stmt, err := db.Perpare("INSERT INTO User(user,pwd) VALUES (?, ?)")
	if err != nil {
		panic(err)
	}
	defer stmt.Close()
	_, err := stmt.Exec("laoli", "123456")
	if err != nil {
		panic(err)
	}
//...
//...
	stmt, err := db.Perpare("DELETE FROM User")
	if err != nil {
		panic(err)
	}
	defer stmt.Close()
	_, err := stmt.Exec()
	if err != nil {
		panic(err)
	}
Copier après la connexion

Query(args interface{} …) ( *Rows, error), étant donné les paramètres et exécute l'instruction préparée, renvoyant les résultats de la ligne, par exemple, l'opération SELECT doit être appelée avec cette fonction.

sql.Rows

Rows est la table renvoyée par l'exécution de l'instruction SQL. Rows occupera le cache dans Rows.Next(), si false est renvoyé, il. sera automatiquement libéré du cache.

Regardez le code source :

// 源码
func (rs *Rows) Next() bool {
	var doClose, ok bool
	withLock(rs.closemu.RLocker(), func() {
		doClose, ok = rs.nextLocked()
	})
	if doClose {
		rs.Close() //在这里释放掉了
	}
	return ok
}
Copier après la connexion

Exemple :

package main

import (
	"database/sql"
	_ "github.com/go-sql-driver/mysql"
)

var db *sql.DB
func mian() {
	db = sql.Open("mysql", "root:123456@tcp(127.0.0.1)/test")
	if err := db.Ping(); err != nil {
		panic(err)
	}
}

func Insert() {
	_, err := db.Exec("INSERT INTO User(user, pwd) VALUE (?, ?)", "laowang", "123456")
	if err != nil {
		panic(err)
	}
}

func SelectRow() {
	rows, err := db.Query("SELECT * FROM User WHERE user=?", "laowang")
	if err != nil {
		panic(err)
	}
	//defer rows.Close() //如果后面代码没有循环调用rows.Next(),就需要手动在这里释放一下,不然会一直占用缓存
	var user string
	var pwd string
	for rows.Next() {
		row.Scan(&user, &pwd)
	}
	print(user, pwd)
}
Copier après la connexion
Pour plus de connaissances sur le langage go, veuillez faire attention à la colonne

tutoriel sur le langage go sur PHP chinois site web.

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