安装驱动
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 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数据库