zoukankan      html  css  js  c++  java
  • Golang-使用mysql

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

  • 相关阅读:
    学习:类和对象——构造函数和析构函数
    学习:类和对象——封装
    学习:引用类型
    学习:内存分区模型
    实现:通讯录管理系统
    实现:结构体案例
    学习:结构体
    实现:指针和冒泡函数和数组
    学习:指针
    学习:函数的分文件编写
  • 原文地址:https://www.cnblogs.com/zhuchunyu/p/11275781.html
Copyright © 2011-2022 走看看