go 连接到数据库

package main 

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

var DB *sqlx.DB

type DbInfo struct {
        Engine string
        User   string
        Pass   string
        Ip     string
        Port   string
        Table  string
}

func init () {

        db1 := DbInfo{
                "mysql",
                "root",
                "root",
                "127.0.0.1",
                "3306",
                "test",
        }

        database, err := sqlx.Open(db1.Engine, fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", db1.User, db1.Pass, db1.Ip, db1.Port, db1.Table))

        if err != nil {
                fmt.Println("mysql open failed, error:", err)
                return
        }

        DB = database
}

func main () {
        _, err := DB.Exec("insert into test (username, age) values (?, ?)", "lisi", "24")

        if err != nil {
                fmt.Println("mysql exec failed, error:", err)
                return
        }

}

  使用第三方的包 sqlx, mysql ;获取:

go get github.com/jmoiron/sqlx

  go get github.com/go-sql-driver/mysql

2.查询操作,更新操作

  

package main

import (

"fmt"

_ "github.com/go-sql-driver/mysql"

"github.com/jmoiron/sqlx"

)

var DB *sqlx.DB

type Person struct {

//对应数据库里面的字段名

UserId int `db:"user_id"`

Username string `db:"username"`

Sex string `db:"sex"`

Email string `db:"email"`

}

func init () {

database, err := sqlx.Open("mysql", "zhangjun:zhangjun123@tcp(127.0.0.1:3306)/test")

if err != nil {

fmt.Println("open mysql failed,error:", 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("select failed,error:", err)

return

}

fmt.Println(person)

//更新操作

_, err = DB.Exec("update person set username = ? where user_id = ?", "lisi", 1)

if err != nil {

fmt.Println("update failed,error:", err)

return

}

}