golang 操作数据库
golang操作数据库的过程十分简单,以下是一个简单的增删改查的操作,这里我们使用MySQL数据库为例。
连接数据库
连接数据库我们首先需要下载相应数据库的驱动,这里我们选择的是MySQL数据库驱动,所以我们先去拉取驱动。在这之前我们需要有git-下载地址: https://git-scm.com/ ,若下载速度慢,建议使用如下地址 https://npm.taobao.org/mirrors/git-for-windows/ 选择相应的版本下载即可。
-
go get github.com/go-sql-driver/mysql
拉取驱动,若是其他数据库可以修改后面的名称或去相应的github上寻找 -
import ( _ "github.com/go-sql-driver/mysql")
在代码中导入这个驱动包,这么做会调用mysql包中的init方法。 -
var db *sql.DB func conn(){ open, err := sql.Open("mysql","user:password@tcp(127.0.0.1:3306)/demo_db") // 这里的地址若是本地3306接口可以写成user:password@tcp(127.0.0.1:3306)/demo_db if err!=nil { log.Fatal(err) panic(err)} db = open }
数据操作
插入数据
// 数据添加
func add(){
_, err := db.Exec("insert into user (name, age, email) value (?,?,?)", "张三", 20, "zhang@example.com")
if err!=nil {
fmt.Println(err)
panic(err)
}
}
删除数据
// 数据删除
func remove(){
exec, err := db.Exec("delete from user where id = ?", 6)
if err != nil {
fmt.Println(err)
panic(err)
}
fmt.Println(exec.RowsAffected())
}
修改数据
func modify(){
exec, err := db.Exec("update user set name = ?,age = ? where id = ?", "babiqus", "22", 6)
if err!=nil {
fmt.Println(err)
panic(err)
}
fmt.Println(exec.RowsAffected())
}
查询数据
func query() {
query, err := db.Query("select * from user")
if err!=nil {
log.Fatal(err)
panic(err)
}
defer query.Close()
// 必须要把 query 里的内容读完,或者显式调用 Close() 方法,
// 否则在 defer 的 rows.Close() 执行之前,连接永远不会释放
var userList []User
for query.Next(){
user := new(User)
err := query.Scan(&user.id,&user.name,&user.age,&user.email)
if err != nil{
log.Fatal(err)
}
userList = append(userList, *user)
}
for _, value := range userList {
fmt.Println(value)
}
}
使用
func init(){
conn()
}
func main() {
//add()
//modify()
//remove()
query()
defer db.Close()
}