Go语言连接MySQL

很多语言都可以连接MySQL,像前面提到过的Java、Scala、python、pyspark等都可以连接MySQL,那么Go也一样可以连接。
话不多说,直接上代码:

package main


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

func main() {

     //数据库信息
     //用户名:密码@tcp(ip:端口号)/数据库名
     con := "root:root@tcp(192.168.5.150:3306)/test"
   
     //连接数据库
     db,err := sql.Open("mysql", con)
     
     //con 格式错误会提示错误
     if err != nil {
 	fmt.Printf("con: %s invalid, err: %v\n",con,err)
	 return
     }
     
     err = db.Ping()
     if err != nil {
 	fmt.Printf("open %s failed,err: %\n", con,err)
     }
     
     fmt.Println("connect success")
}

增删改查

package main

import(

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

func main(){

    db,err := sql.Open("myaql","root:root@/test?charset=utf8")
    checkErr(err)

    //插入数据
    stmt,err := db.Prepare("INSERT INTO userinfo set username=? , department=?,created=?")
    checkErr(err)

    res,err := stmt.Exec ("root""研发部""2000-01-01")
    checkErr(err)

    id, err := res.LastInsertId()
    checkErr(err)

    fmt.Println("id: ", id)

    //更新数据
    stmt,err = db.Prepare ("update userinfo set username=? where uid=?")
    checkErr(err)

    res, err = stmt.Exec("xxc", id)
    checkErr(err)

    affect, err := res.RowsAffected(
    checkErr(err)

    fmt.Println( "affect: ",affect)

    //查询数据
    rows, err := db.Query("SELECT * FROM userinfo")
    checkErr(err)

    for rows.Next(){

       var uid int
       var username string
       var department string
       var created string
       err = rows.Scan (&uid,&username,&department,&created)
       checkErr(err)
       fmt.Println( "uid: ", uid)
       fmt.Println( "username: ", username)
       fmt.Println( "department: ",department)
       fmt.Println( "created: ",created)
    
     }

    //删除数据
    stmt, err = db.Prepare ("delete from userinfo where uid=?")
    checkErr (err)

    res, err =stmt.Exec(id)
    checkErr (err)

    affect, err = res.RowsAffected (
    checkErr(err)

    fmt.Println("affect: ",affect)
    db.C1ose()
}

func checkErr(err error){

    if err != nil {
        panic(err)
    }
}

结果:

$ go run mysql.go
id: 2
affect: 1
uid: 2
username: xxc
department: 研发部
created: 2000-01-01
affect: 1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值