go语言实现mysql的增删改查主要靠mysql驱动来实现。
1:安装mysql驱动,
go get -u github.com/go-sql-driver/mysql,如果由于网络的原因实现不了这个可以将github.com/go-sql-driver/mysql 下载下来,然后将其move到GOPATH目录下面,然后执行 go install mysql。
2:go和数据库的增删改查
1:连接数据库
import (
"database/sql"
"fmt"
"strings"
_ "mysql"
)
const (
userName = "root"
password = "xiaosa0039"
ip = "127.0.0.1"
port = "3306"
dbName = "testgo"
)
func main(){
path := strings.Join([]string{userName, ":", password, "@tcp(",ip, ":", port, ")/", dbName, "?charset=utf8"}, "")
db, err := sql.Open("mysql", path)
}
可以采用const 将数据库登录信息保存下来,然后拼接成为字符串,然后登录。
2:增加数据
增加数据大致可以分成以下三个部分:
1:准备SQL语句。
2:执行SQL语句。
3:获取最后一个自增ID
stmt, err := db.Prepare("INSERT userinfo SET username=?,department=?,created=?")
checkErr(err)
res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")
checkErr(err)
id, err := res.LastInsertId()
checkErr(err)
3:修改数据也分为三个部分
1:准备SQL语句
2:执行SQL语句
3:获取最后一个自增ID
stmt, err = db.Prepare("update userinfo set username=? where uid=?")
checkErr(err)
res, err = stmt.Exec("astaxieupdate", id)
checkErr(err)
affect, err := res.RowsAffected()
checkErr(err)
fmt.Println(affect)
4:删除数据
stmt, err = db.Prepare("delete from userinfo where uid=?")
checkErr(err)
res, err = stmt.Exec(id)
checkErr(err)
affect, err = res.RowsAffected()
checkErr(err)
5:查询数据
rows, err := db.Query("SELECT * FROM userinfo")
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.Println(uid)
fmt.Println(username)
fmt.Println(department)
fmt.Println(created)
}