golang 连接mysql数据库

来源:互联网 发布:如何查看电脑远程端口 编辑:程序博客网 时间:2024/06/04 17:59

转载于:http://www.cnblogs.com/shhnwangjian/p/7513596.html

安装导入

go get "github.com/go-sql-driver/mysql"go get "github.com/jmoiron/sqlx"import (    _ "github.com/go-sql-driver/mysql"    "github.com/jmoiron/sqlx")

github:
https://github.com/go-sql-driver/mysql
https://github.com/jmoiron/sqlx
Doc:
http://godoc.org/github.com/jmoiron/sqlx
http://jmoiron.github.io/sqlx

1. connect/open

package mainimport (_ "github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx""fmt")var Db *sqlx.DBfunc init() {    database, err := sqlx.Open("mysql", "root:root@tcp(10.10.83.162:3306)/etm-m-om")    if err != nil {        fmt.Println("open mysql failed,", err)        return    }    Db = database}func main()  {    fmt.Println(Db)}

2.select

package mainimport (    "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.DBfunc init() {    database, err := sqlx.Open("mysql", "root:root@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 user_id, username, sex, email from person where user_id=?", 1)    if err != nil {        fmt.Println("exec failed, ", err)        return    }    fmt.Println("select succ:", person)}

3.update

package mainimport (    "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.DBfunc init() {    database, err := sqlx.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test")    if err != nil {        fmt.Println("open mysql failed,", err)        return    }    Db = database}func main() {    _, err := Db.Exec("update person set username=? where user_id=?", "stu0003", 1)    if err != nil {        fmt.Println("exec failed, ", err)        return    }}

4.insert

package mainimport (    "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.DBfunc init() {    database, err := sqlx.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test")    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)}

5.delete

package mainimport (    "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.DBfunc init() {    database, err := sqlx.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test")    if err != nil {        fmt.Println("open mysql failed,", err)        return    }    Db = database}func main() {    _, err := Db.Exec("delete from person where user_id=?", 1)    if err != nil {        fmt.Println("exec failed, ", err)        return    }    fmt.Println("delete succ")}
原创粉丝点击