1.提前条件
安装好go语言
配置好GOROOT 和 GOPATH
2.打开cmd命令行执行安装命令
go get github.com/Go-SQL-Driver/MySQL
3.查看是否安装成功
查看GOPATH下面是否有src目录和pkg目录,且里面有找到MySQL,说明安装成功
4.程序测试
package main
// 导入包
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
// mysql基本链接信息
var (
// 数据库 host
host = "127.0.0.1"
// 数据库用户名
username = "xxx"
// 数据库密码
password = "xxx"
// 数据库名
name = "xxx"
)
func main() {
// 链接数据库
db, err := sql.Open("mysql", username+":"+password+"@tcp("+host+")/"+name+"?charset=utf8")
if err != nil {
panic(err)
}
// 查询
rows, err := db.Query("select id,gender,username from users order by id asc")
if err != nil {
panic(err)
}
for rows.Next() {
var id int
var gender int
var username string
err = rows.Scan(&id, &gender, &username)
if err != nil {
panic(err)
}
fmt.Println(id, gender, username)
}
// 更新操作
updateStmt, err := db.Prepare("update users set gender=1 where id in (?,?)")
if err == nil {
res, err := updateStmt.Exec(2, 3)
if err == nil {
fmt.Println(res.RowsAffected()) // 返回受影响的行数 2
}
}
// 添加操作
insertStmt, err := db.Prepare("insert into regions (`id`,`parent_id`,`code`,`name`) values (?,?,?,?)")
if err == nil {
res, err := insertStmt.Exec(3514, 0, 830000, "南极")
if err == nil {
fmt.Println(res.LastInsertId()) // 返回插入成功最后的id 3514
}
}
// 删除操作
deleteStmt, err := db.Prepare("delete from regions where id = ?")
if err == nil {
res, err := deleteStmt.Exec(3514)
if err == nil {
fmt.Println(res.RowsAffected()) // 返回受影响的行数 1
}
}
rows.Close()
db.Close()
}