zoukankan      html  css  js  c++  java
  • 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()
    }
    
  • 相关阅读:
    关于白盒测试的心得
    基于Java的闰年测试
    等价类划分练习的代码实现
    软件测试中的等价类划分练习
    关于软件测试的初学小结
    现代软件工程作业第十二题(原十四题)
    好像木有白盒测试实验的报告,补一个~
    给大家推荐一本书啊啊~
    关于【做一名软件测试工程师,需要具备什么】的我的看法
    关于考试的笔记整理
  • 原文地址:https://www.cnblogs.com/bananafish/p/12079521.html
Copyright © 2011-2022 走看看