package main
import (
"fmt"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
)
type DbRepo struct {
Db *sqlx.DB
TableName string
}
func NewDbRepo(sqlDriver, sqlUrl, tableName string) (*DbRepo, error) {
var db *sqlx.DB
var err error
db, err = sqlx.Open(sqlDriver, sqlUrl)
checkErr(err)
err = db.Ping()
checkErr(err)
return &DbRepo{Db: db, TableName: tableName}, nil
}
// 插入数据
func (c *DbRepo) InsertData(d string) {
fmt.Printf("对%s表插入数据:%s\r\n", c.TableName, d)
}
// 删除数据
func (c *DbRepo) RemoveData(d string) {
fmt.Printf("对%s表删除数据:%s\r\n", c.TableName, d)
}
// 修改数据
func (c *DbRepo) UpdateData(d string) {
fmt.Printf("对%s表删除数据:%s\r\n", c.TableName, d)
}
// 查看数据
func (c *DbRepo) QueryData(d string) {
fmt.Printf("对%s表删除数据:%s\r\n", c.TableName, d)
}
type Manager struct {
DbRepo IDbRepo
}
func NewManager() (*Manager, error) {
var m Manager
dc, err := NewDbRepo("driver", "url", "people")
if err != nil {
return &m, err
}
m.DbRepo = dc
return &m, nil
}
type IDbRepo interface {
InsertData(d string)
RemoveData(d string)
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
备注:瞎写