1、主文件
package main
import (
"fmt"
"wbGo/configs"
)
type dades struct {
Id int
Name string
}
func main() {
Db := configs.Mysql{}
var data []configs.Dades
data = Db.BaseName("wbrj_sample").Select("select * from dade")
fmt.Printf("%+v", data)
}
2、封装文件
package configs
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
type Dades struct {
Id int
Name string
}
var Db *sqlx.DB
// Mysql 结构体代表配置
type Mysql struct{}
// Mysql 方法返回一个 MysqlHandler 结构体
func (c Mysql) BaseName(base string) Base {
database, err := sqlx.Open("mysql", "root:root@tcp(localhost:3306)/"+base)
if err != nil {
fmt.Println("连接失败", err)
return Base{code: "20001", mesage: err}
}
fmt.Println("连接成功")
Db = database
return Base{code: "20000", mesage: err}
}
// MysqlHandler 结构体用于处理 MySQL 相关操作
type Base struct {
code string
mesage error
}
// Eq 方法用于模拟比较操作
func (m Base) Select(sql string) []Dades {
fmt.Printf("%+v", m)
fmt.Printf("执行sql", sql)
var dades []Dades
Db.Select(&dades, "select * from dade")
//fmt.Printf("\t\n%+v", dades)
return dades
}