首页 > 数据库技术 > 详细

Golang-使用mysql

时间:2019-07-31 14:14:14      阅读:82      评论:0      收藏:0      [点我收藏+]

一、安装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语言的官方文档

Golang-使用mysql

原文:https://www.cnblogs.com/zhuchunyu/p/11275781.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!