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.
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
aller faire fonctionner la base de données MySQL
Package d'introduction
import _ "github.com/go-sql-driver/mysql"
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()//随手关闭数据库是个好习惯
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)
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) }
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)
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)))
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)
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)
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) } }
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) } }
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!