欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Golang-使用mysql

程序员文章站 2022-06-24 08:59:24
一、安装mysql driver驱动 二、安装完毕之后,就可以通过go语言操作mysql了 三、对mysql的增删查改用Query,Exec方法就ok了,具体其他的方法参考go语言的官方文档 ......

一、安装mysql-driver驱动

go get github.com/go-sql-driver/mysql

二、安装完毕之后,就可以通过go语言操作mysql了

const (
    _selectuser = "select name,age from user where id = ?"
    _updateuser = "update user set name = ? where name = ?"
    _insertuser = "insert user (name,age) values (?,?)"
    _deleteuser = "delete user where id = ?"
)

func main () {
    var (
        err error
    )
    // 得到一个db对象
    // open方法第二个参数:  用户名:密码@协议(ip:端口)/数据库
    db,err := sql.open("mysql","root:root@tcp(127.0.0.1:3306)/day0731")
    if err != nil {
        fmt.println(err)
        return
    }
    defer db.close()
    
    // 这里我们拿到了db这个对象,就可以对day0731这个mysql数据库进行操作了
    // 查询操作
    // query方法,返回值具体类型自己看
    var (
        name string
        age int
    )
    resultrows,err := db.query(_selectuser,1)
    // 这里的name,age必须和sql语句顺序一致,也不能多传,也不能少传
    err = resultrows.scan(&name,&age)  
    if err != nil {
        fmt.println(err)
        retrun
    }
    fmt.println(name)
    fmt.println(age)
    
    // queryrow方法,查询的效果和上面一致
    err = db.queryrow(_selectuser,1).scan(&name,&age)
    if err != nil {
        fmt.println(err)
        return
    }
    fmt.println(name)
    fmt.println(age)
    
    
    // 插入、更新、删除操作
    // exec方法,执行一段sql语句
    result,err := db.exec(_updateuser,"朱春雨","朱宇")
    if err != nil {
        fmt.println(err)
        return
    }
    // result这个对象,他有两个方法,rowsaffected(),lastinsertid(),
    // 分别返回影响的行数,还有就是最后插入的id
    // 我们这里执行的是更新语句,就看这个方法就好了rowsaffected
    rowcount,err := result.rowsaffected()
    if err != nil {
        fmt.println(err)
        return
    }
    if rowcount == 0 {
        fmt.println("更新操作失败")
        return
    }
    fmt.println("更新操作成功!")
    
}

三、对mysql的增删查改用query,exec方法就ok了,具体其他的方法参考go语言的官方文档