golang 实现数据库增删改查
2018-03-05 15:40:04 小德 golang 访问次数 889


1、下载golang mysql连接驱动,并将MySQL包放在go lib下


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

2、建表 

CREATE TABLE `userinfo` (

    `uid` INT(10) NOT NULL AUTO_INCREMENT,

    `username` VARCHAR(64) NULL DEFAULT NULL,

    `departname` VARCHAR(64) NULL DEFAULT NULL,

    `created` DATE NULL DEFAULT NULL,

    PRIMARY KEY (`uid`)

)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='test';

//指定字符集编码  


3、

package main  

  

import (  

    "database/sql"  

    "fmt"

    "log"  

    _ "github.com/go-sql-driver/mysql"  

)  

  

var (  

    dbhostsip  = "127.0.0.1:3306"//IP地址  

    dbusername = "root"//用户名  

    dbpassword = "qwer1234"//密码  

    dbname     = "test"//表名  

)  

  

func main() {  

    db, err := sql.Open("mysql", "root:qwer1234@tcp(127.0.0.1:3306)/test?charset=utf8")  

    checkErr(err)  

  

    //插入数据  

    stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")  

    checkErr(err)  

  

    res, err := stmt.Exec("码农dd", "技术部", "2016-03-06")  

    checkErr(err)  

         

    id, err := res.LastInsertId()  

    checkErr(err)  

  

    fmt.Println("---------",id)  

    //更新数据  

    stmt, err = db.Prepare("update userinfo set username=? where uid=?")  

    checkErr(err)  

  

    res, err = stmt.Exec("码农二代", id)  

        affect, err := res.RowsAffected()  

    checkErr(err)  

  

    fmt.Println(affect)  

 

   checkErr(err)  

          rows,err := db.Query("SELECT * FROM userinfo where uid=?",id)

  

    checkErr(err)  


        for rows.Next() {

                var uid int 

                var username string

                var department string

                var created  string

                err = rows.Scan(&uid,&username,&department,&created)

                checkErr(err)

                fmt.Printf("uid = %d, username = %s , username= %s, created = %s \n",uid,username,department,created)

        }



        stmt,err = db.Prepare("delete from userinfo where uid= ?")

        checkErr(err)

        res,err = stmt.Exec(id);

        checkErr(err)

        affect,err = res.RowsAffected()

        checkErr(err)


        fmt.Println(affect)


        log.Fatalln("ddddd")


  

     

  

    db.Close()  

  

}  

  

func checkErr(err error) {  

    if err != nil {  

        panic(err)  

    }  

}