GoLang処理Mysqlノート

1997 ワード

mysqlデータベースの場合:
まずgoはdatabase/sqlインタフェースを提供してデータベースドライバを登録します.
githubをよく使う.com/go-sql-driver/mysqlデータベースドライバによるデータ処理.
まずmysqlデータベースドライバをダウンロードします.実行
go get github.com/go-sql-driver/mysql
ダウンロードが完了したらgopath/pkgパッケージファイルディレクトリで彼を見ることができます.
では、このドライバを使用してデータベースの削除変更操作を行うにはどうすればいいのでしょうか.
so
package main

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

func main(){
   //             
   db , err := sql.Open("mysql" , "root:@/test?charset=utf8")
   if err != nil{
      panic(err)
   }

   //   ,        
   qry , err := db.Prepare("INSERT INTO t_user (name,age) VALUES (?,?)")
   if err != nil{
      panic(err)
   }
   res , err := qry.Exec("xin2017","26")
   if err != nil{
      panic(err)
   }
   fmt.Println(res.LastInsertId())

   //  ,               
   users , err := db.Query("select id,name,age from t_user")
   if err != nil{
      panic(err)
   }
   for users.Next(){ //      
      var id int
      var name string
      var age int
      users.Scan(&id , &name ,&age)
      fmt.Println(id,name,age)
   }

   //   ,      id=1       ‘   2018’
   qry2 , err := db.Prepare("UPDATE t_user SET name = 'meng2018' where id = ?")
   if err != nil{
      panic(err)
   }
   updaterow , err := qry2.Exec(1)
   if err != nil{
      panic(err)
   }
   affectrow , err:= updaterow.RowsAffected()
   if err != nil{
      panic(err)
   }
   fmt.Println(affectrow)

   //  ,            name='xin2017'
   qry3 , err := db.Prepare("DELETE from t_user WHERE name = ?")
   if err != nil{
      panic(err)
   }
   deleterow , err := qry3.Exec("xin2017")
   if err != nil{
      panic(err)
   }
   affectrow2 , err:= deleterow.RowsAffected()
   if err != nil{
      panic(err)
   }
   fmt.Println(affectrow2)
}

ps:ここで勉強した後の産出をします.あなたのことを思っていた夜、私は思わず開けて見ました...最后に黙読する1つの字:赏!!!