• golang学习----数据库操作


    golang 操作数据库

    golang操作数据库的过程十分简单,以下是一个简单的增删改查的操作,这里我们使用MySQL数据库为例。

    连接数据库

    ​ 连接数据库我们首先需要下载相应数据库的驱动,这里我们选择的是MySQL数据库驱动,所以我们先去拉取驱动。在这之前我们需要有git-下载地址: https://git-scm.com/ ,若下载速度慢,建议使用如下地址 https://npm.taobao.org/mirrors/git-for-windows/ 选择相应的版本下载即可。

    1. go get github.com/go-sql-driver/mysql 拉取驱动,若是其他数据库可以修改后面的名称或去相应的github上寻找

    2. import ( _ "github.com/go-sql-driver/mysql") 在代码中导入这个驱动包,这么做会调用mysql包中的init方法。

    3. var db *sql.DB
      func conn(){
      open, err := sql.Open("mysql","user:password@tcp(127.0.0.1:3306)/demo_db") // 这里的地址若是本地3306接口可以写成user:password@tcp(127.0.0.1:3306)/demo_db
      if err!=nil {   log.Fatal(err)   panic(err)} 
      db = open
      }
      

    数据操作

    插入数据

    //  数据添加
    func add(){  
        _, err := db.Exec("insert into user (name, age, email) value (?,?,?)", "张三", 20, "zhang@example.com")   
        if err!=nil {      
            fmt.Println(err)      
            panic(err)   
        }
    }
    

    删除数据

    //  数据删除
    func remove(){   
        exec, err := db.Exec("delete from user where id = ?", 6)   
        if err != nil {      
            fmt.Println(err)      
            panic(err)   
        }   
        fmt.Println(exec.RowsAffected())
    }
    

    修改数据

    func modify(){
        exec, err := db.Exec("update user set name = ?,age = ? where id = ?", "babiqus", "22", 6)   
        if err!=nil {    
            fmt.Println(err)     
            panic(err)  
        }   
        fmt.Println(exec.RowsAffected())
    }
    

    查询数据

    func query() {   
        query, err := db.Query("select * from user")  
        if err!=nil {    
            log.Fatal(err)    
            panic(err)  
        }  
        defer query.Close()   
        // 必须要把 query 里的内容读完,或者显式调用 Close() 方法,   
        // 否则在 defer 的 rows.Close() 执行之前,连接永远不会释放   
        var userList []User
        for query.Next(){   
            user := new(User)   
            err := query.Scan(&user.id,&user.name,&user.age,&user.email)    
            if err != nil{    
                log.Fatal(err)    
            }    
            userList = append(userList, *user)   
        }  
        for _, value := range userList {  
            fmt.Println(value)  
        }
    }
    

    使用

    func init(){  
        conn()
    }
    func main() {   
        //add()  
        //modify()
        //remove()  
        query()
        defer db.Close()
    }
    
  • 相关阅读:
    冒泡排序算法分析和实现
    选择排序算法分析与实现
    nio和 bio
    TCP三次握手
    IE input X 去掉文本框的叉叉和密码输入框的眼睛图标
    <%#eval() %>和<%#bind() %> 的区别
    <%#Eval() %>的常用方法
    C#(ASP.net)从其他网站抓取内容并截取有用信息
    JQuery写的一个简单的分页插件-2
    简单实用的jQuery分页插件
  • 原文地址:https://www.cnblogs.com/bananafish/p/12079521.html
Copyright © 2020-2023  润新知