go mysql使用
使用第三方开源的mysql库: github.com/go-sql-driver/mysql (mysql驱动) github.com/jmoiron/sqlx (基于mysql驱动的封装)
命令行输入 :
go get github.com/go-sql-driver/mysql
go get github.com/jmoiron/sqlx
表信息:
CREATE TABLE `person` (
`username` varchar(255) NOT NULL DEFAULT '',
`sex` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1 男 2 女',
`email` varchar(255) NOT NULL DEFAULT '',
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
1 新增:
package main
//Go不允许引用不使用的包。但是有时你引用包只是为了调用init函数去做一些初始化工作。用下划线解决这个问题。
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:test123456@tcp(127.0.0.1:3306)/test")
//database, err := sqlx.Open("数据库类型", "用户名:密码@tcp(地址:端口)/数据库名")
if err != nil {
fmt.Println("open mysql failed,", err)
return
}
db = database
//defer db.Close() // 注意这行代码要写在上面err判断的下面
}
func main() {
r, err := db.Exec("insert into person(username, sex, email)values(?, ?, ?)", "stu001", "1", "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)
}
2:查询:
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Person struct {
UserId int `db:"id"`
UserName string `db:"username"`
Sex int `db:"sex"`
Email string `db:"email"`
}
var db * sqlx.DB
func init(){
database,err := sqlx.Open("mysql","root:test123456@tcp(127.0.0.1:3306)/test")
if err!=nil {
fmt.Println("open mysql failed",err)
return
}
db = database
}
func main() {
var person []Person
err := db.Select(&person, "select id, username, sex, email from person where 1")
if err !=nil {
fmt.Println("exec failed",err)
return
}
fmt.Println("select succ:",person)
}
本文介绍了如何在Go语言中使用github.com/go-sql-driver/mysql和github.com/jmoiron/sqlx库来连接和操作MySQL数据库。内容包括数据库连接、创建表、新增记录以及查询数据的示例代码。通过这些示例,读者可以快速掌握Go语言进行MySQL数据库操作的基本方法。
660

被折叠的 条评论
为什么被折叠?



