Go笔记5:访问MySQL数据库

zjun Lv4

安装驱动

MySQL驱动: https://github.com/go-sql-driver/mysql

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

连接数据库

1
2
3
4
5
6
7
import (
"database/sql"
"fmt"
_ "github.com/Go-SQL-Driver/MySQL"
)

db, err := sql.Open("mysql", "user:password@/dbname")

关闭数据库连接

1
db.Close()

增删改查

查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
db, err := sql.Open("mysql", "user:password@/dbname?charset=utf8")  
checkErr(err)

//查询数据
rows, err := db.Query("SELECT * FROM account")
checkErr(err)

for rows.Next() {
var id int
var name string
err = rows.Scan(&id, &name)
checkErr(err)
fmt.Print(id)
fmt.Println(name)
}

新增

1
2
3
4
5
6
7
8
9
10
11
12
13
db, err := sql.Open("mysql", "zjun:zjun@/test?charset=utf8")  
checkErr(err)
//插入数据
stmt, err := db.Prepare("INSERT INTO userinfo(username, departname, created) VALUES(?,?,?)")
checkErr(err)

res, err := stmt.Exec("zjun", "研发部门", "2014-01-03")
checkErr(err)

id, err := res.LastInsertId()
checkErr(err)

fmt.Println(id)

修改

1
2
3
4
5
6
7
8
9
10
11
//更新数据
stmt, err = db.Prepare("update userinfo set username=? where uid=?")
checkErr(err)

res, err = stmt.Exec("zjunupdate", id)
checkErr(err)

affect, err := res.RowsAffected()
checkErr(err)

fmt.Println(affect)

删除

1
2
3
4
5
6
7
8
9
10
11
//删除数据
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)

参考资料

Go Web编程:使用MySQL数据库

  • 标题: Go笔记5:访问MySQL数据库
  • 作者: zjun
  • 创建于 : 2014-01-03 21:06:19
  • 更新于 : 2023-11-30 17:05:09
  • 链接: https://zjun.site/2014/01/f9928eb01a4c.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论