老男孩教育-Go语言操作MySQL(二)
老男孩IT教育
行业新闻
2021年4月19日 17:54
GO语言如何操作MySQL?之前为大家介绍了上半部分,接下来跟着老男孩教育继续往下看。
GO语言如何操作MySQL?之前为大家介绍了上半部分,接下来跟着老男孩教育继续往下看。
插入操作
建议使用结构化操作,不推荐使用直接拼接sql语句的方法。
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Student struct {
Id int `db:"id"`
Name string `db:"name"`
Sex string `db:"sex"`
Age int `db:"age"`
Course string `db:"course"`
}
var Db *sqlx.DB
func init() {
database, err := sqlx.Open("mysql", "root:root@tcp(127.0.0.1:3306)/oldboy")
if err != nil {
fmt.Println("open mysql failed,", err)
return
}
Db = database
}
func main() {
r, err := Db.Exec("insert into student(name, sex, age, course)values(?, ?, ?, ?)", "张三", "男", 18, "Golang")
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)
}
查询操作
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Student struct {
Id int `db:"id"`
Name string `db:"name"`
Sex string `db:"sex"`
Age int `db:"age"`
Course string `db:"course"`
}
var Db *sqlx.DB
func init() {
database, err := sqlx.Open("mysql", "root:root@tcp(127.0.0.1:3306)/oldboy")
if err != nil {
fmt.Println("open mysql failed,", err)
return
}
Db = database
}
func main() {
var student []Student
err := Db.Select(&student, "select id, name, sex, age, course from student where course=?", "Golang")
if err != nil {
fmt.Println("exec failed, ", err)
return
}
fmt.Println("select succ:", student)
}
修改操作
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Student struct {
Id int `db:"id"`
Name string `db:"name"`
Sex string `db:"sex"`
Age int `db:"age"`
Course string `db:"course"`
}
var Db *sqlx.DB
func init() {
database, err := sqlx.Open("mysql", "root:root@tcp(127.0.0.1:3306)/oldboy")
if err != nil {
fmt.Println("open mysql failed,", err)
return
}
Db = database
}
func main() {
res, err := Db.Exec("update student set name=? where course=?", "李四", "Golang")
if err != nil {
fmt.Println("exec failed, ", err)
return
}
row, err := res.RowsAffected()
if err != nil {
fmt.Println("rows failed, ", err)
}
fmt.Println("update succ:", row)
}
删除操作
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Student struct {
Id int `db:"id"`
Name string `db:"name"`
Sex string `db:"sex"`
Age int `db:"age"`
Course string `db:"course"`
}
var Db *sqlx.DB
func init() {
database, err := sqlx.Open("mysql", "root:root@tcp(127.0.0.1:3306)/oldboy")
if err != nil {
fmt.Println("open mysql failed,", err)
return
}
Db = database
}
func main() {
res, err := Db.Exec("delete from student where name=?", "李四")
if err != nil {
fmt.Println("exec failed, ", err)
return
}
row, err := res.RowsAffected()
if err != nil {
fmt.Println("rows failed, ", err)
}
fmt.Println("delete succ: ", row)
}
修改和删除操作都比较简单,同插入数据类似,只是使用RowsAffected来获取影响的数据行数。
老男孩教育率行业之先开设GO语言课程,如果你想要学习GO语言,欢迎来老男孩教育试听,师资力量强大、内容体系完善,助你实现高薪就业。
推荐阅读:
