63 lines
1.1 KiB
Go
63 lines
1.1 KiB
Go
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"github.com/jmoiron/sqlx"
|
||
"log"
|
||
|
||
_ "github.com/go-sql-driver/mysql"
|
||
)
|
||
|
||
// sqlx 另外的库
|
||
|
||
var databasE *sqlx.DB
|
||
|
||
type users struct {
|
||
ID int
|
||
NAME string
|
||
AGE int
|
||
}
|
||
|
||
func main() {
|
||
err := initd()
|
||
if err != nil {
|
||
return
|
||
}
|
||
//查询单行,不需要scan也能拿到结果
|
||
sqlstr := `select id,name,age from user where id=1`
|
||
var u users
|
||
err = databasE.Get(&u, sqlstr)
|
||
if err != nil {
|
||
return
|
||
}
|
||
fmt.Println(u)
|
||
//查询多行
|
||
var ulist = make([]users, 0, 1) //引用类型初始化
|
||
sqlstr2 := `select id,name,age from user`
|
||
//必须要传指针
|
||
err = databasE.Select(&ulist, sqlstr2)
|
||
if err != nil {
|
||
fmt.Println(err)
|
||
return
|
||
}
|
||
fmt.Println(ulist)
|
||
}
|
||
|
||
func initd() (err error) {
|
||
databasE, err = sqlx.Connect("mysql", "root:123456@tcp(43.143.245.135:3306)/user")
|
||
if err != nil {
|
||
log.Println(err)
|
||
return err
|
||
}
|
||
//connect方法提供了ping。所以不需要ping
|
||
//err = databasE.Ping()
|
||
//if err != nil {
|
||
// log.Println(err)
|
||
// return err
|
||
//}
|
||
log.Println("Successfully connected to mysql")
|
||
databasE.SetMaxOpenConns(10)
|
||
databasE.SetMaxIdleConns(5)
|
||
return nil
|
||
}
|