golang基础-go对数据库的增删改查操作
发布时间:2020-12-16 09:43:23 所属栏目:大数据 来源:网络整理
导读:增加 首先看数据库的结构: mysql desc person; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | user _id
增加首先看数据库的结构: mysql> desc person; +----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+
| user_id | int(255) | NO | PRI | NULL | auto_increment |
| username | varchar(255) | NO | | NULL | |
| sex | varchar(255) | YES | | NULL | |
| email | varchar(255) | YES | | NULL | | +----------+--------------+------+-----+---------+----------------+
4 rows in set (0.05 sec)
package main
import (
"fmt"
_"github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Person struct {
UserId int `db:"user_id"`
Username string `db:"username"`
Sex string `db:"sex"`
Email string `db:"email"`
}
type Place struct {
Country string `db:"country"`
City string `db:"city"`
TelCode int `db:"telcode"`
}
var Db *sqlx.DB
func init() {
database,err := sqlx.Open("mysql","root:root@tcp(127.0.0.1:3306)/safly")
if err != nil {
fmt.Println("open mysql failed,",err)
return
}
Db = database
}
func main() {
r,err := Db.Exec("insert into person(username,sex,email)values(?,?,?)","stu001","man","stu01@qq.com")
if err != nil {
fmt.Println("exec failed,err)
return
}
id,err := r.LastInsertId()
if err != nil {
fmt.Println("exec failed,err)
return
}
fmt.Println("insert succ:",id)
}
mysql> select * from person; +---------+----------+------+--------------+
| user_id | username | sex | email | +---------+----------+------+--------------+
| 1 | stu001 | man | stu01@qq.com | +---------+----------+------+--------------+
1 row in set (0.00 sec)
查询package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Person struct {
UserId int `db:"user_id"`
Username string `db:"username"`
Sex string `db:"sex"`
Email string `db:"email"`
}
type Place struct {
Country string `db:"country"`
City string `db:"city"`
TelCode int `db:"telcode"`
}
var Db *sqlx.DB
func init() {
database,err)
return
}
Db = database
}
func main() {
var person []Person
err := Db.Select(&person,"select user_id,username,email from person where user_id=?", 1)
if err != nil {
fmt.Println("exec failed,err)
return
}
fmt.Println("select succ:",person)
}
输出如下: PS E:golanggo_prosrcsafly> go run demo.go
select succ: [{1 stu001 man stu01@qq.com}]
PS E:golanggo_prosrcsafly>
修改package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Person struct {
UserId int `db:"user_id"`
Username string `db:"username"`
Sex string `db:"sex"`
Email string `db:"email"`
}
type Place struct {
Country string `db:"country"`
City string `db:"city"`
TelCode int `db:"telcode"`
}
var Db *sqlx.DB
func init() {
database,err)
return
}
Db = database
}
func main() {
_,err := Db.Exec("update person set username=? where user_id=?","stu0001",err)
return
}
}
mysql> select * from person; +---------+----------+------+--------------+
| user_id | username | sex | email | +---------+----------+------+--------------+
| 1 | stu0001 | man | stu01@qq.com | +---------+----------+------+--------------+
1 row in set (0.00 sec)
删除package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Person struct {
UserId int `db:"user_id"`
Username string `db:"username"`
Sex string `db:"sex"`
Email string `db:"email"`
}
type Place struct {
Country string `db:"country"`
City string `db:"city"`
TelCode int `db:"telcode"`
}
var Db *sqlx.DB
func init() {
database,"root:root@tcp(127.0.0.1:3306)/safly")
if err != nil {
fmt.Println("open mysql failed,err := Db.Exec("delete from person where user_id=?",err)
return
}
fmt.Println("delete succ")
}
输出如下: mysql> select * from person;
Empty set (0.00 sec) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |