golang msyql连接池model继承使用

这篇博客介绍了如何使用GORM库结合自定义的MySQL连接池进行数据库操作。首先,详细展示了初始化连接池和构建数据库配置的步骤。接着,定义了数据结构并实现了TableName方法以匹配数据库表。然后,通过示例展示了查询数据的过程。最后,提供了完整的使用案例,包括设置数据库参数、查询数据等。博客内容涵盖了数据库连接池、GORM模型映射和数据库查询,适合Go语言开发者学习数据库操作。
摘要由CSDN通过智能技术生成
mysql 连接池封装

gorm 在线文档

gorm仓库=>
gorm文档=>

依赖组件

github.com/go-sql-driver/mysql v1.6.0 
github.com/jinzhu/gorm v1.9.16 

使用方式

1.获取组件

go get -u gitee.com/tym_hmm/mysql_pool

2.初始化

mysqlBuilder:=Mysql.NewMysqlBuilder("192.168.111.128", 3307, "root", "123456", "miao", "utf8", true)
mysqlPool:=Mysql.NewMysqlPool()
mysqlPool.SetBuilder(mysqlBuilder)
err:=mysqlPool.Init()
if err !=nil{
  fmt.Println("err",err)
}

3.构建gorm字段与数库字段对应

注)必须实现 TableName string()方法 返回数据库表名 接口为 BaseFieldInterface

type FieldTest struct {
  Id     int    `gorm:"column:id"`
  Name   string `gorm:"column:name"`
  Number int    `gorm:"column:number"`
}

func (t FieldTest) TableName() string {
  return "test"
}

func (t *FieldTest) GetId() int      { return t.Id }
func (t *FieldTest) GetName() string { return t.Name }
func (t *FieldTest) GetNumber() int  { return t.Number }

4.构建model

type TModel struct {
  Mysql.BaseModel
  Field.FieldTest
}
func (t *TModel)FindOne() (error) {
  db, err:=t.GetDb()
  if err !=nil{
    return err
  }
  testFiled := []*Field.FieldTest{}
  db.Table(t.TableName()).Scan(&testFiled)

  for k,v :=range testFiled{
    fmt.Printf("k:%d, v:%+v\n", k, v)
  }
  return nil
}

5.使用案例(可参见demo)

//初始化mysql
mysqlBuilder:=Mysql.NewMysqlBuilder("192.168.111.128", 3307, "root", "123456", "miao", "utf8", true)
mysqlPool:=Mysql.NewMysqlPool()
mysqlPool.SetBuilder(mysqlBuilder)
err:=mysqlPool.Init()
if err !=nil{
	fmt.Println("err",err)
}
//查询数据
tModel:=new(TModel)
err :=tModel.FindOne()
if err !=nil{
  fmt.Println(err)
}

builder 接口说明

//地址
SetHost(host string) BaseFieldInterface
//获取地址
GetHost() string
//口端
SetPort(port int) BaseFieldInterface

//获取端口
GetPort() int

//用户名
SetUser(user string) BaseFieldInterface
//获取用户名
GetUser() string

//密码
SetPwd(pwd string) BaseFieldInterface
//获取密码
GetPwd() string

//数据库
SetDbName(dbName string) BaseFieldInterface
//获取数据库
GetDbName() string

//设置编码
SetChartSet(chartSet string) BaseFieldInterface
//获取编码
GetChartSet() string

//是否开启日志调试
SetIsDebug(isDebug bool) BaseFieldInterface
//获取是否开启日志调试
GetIsDebug() bool

//设置空闲连接池中的最大连接数(默认为10)
SetMaxIdleConns(maxIdleConns int) BaseFieldInterface
//获取空闲连接池中最大连接数
GetMaxIdleConns() int

//设置与数据库的最大打开连接数(默认为10)
SetMaxOpenConns(maxOpenConns int) BaseFieldInterface
//获取与数据中最大打开连接数
GetMaxOpenConns() int

//日志保存目录(当isDebug为true时开启)
SetLogDir(logDir string) BaseFieldInterface
//获取日志保存目录
GetLogDir() string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值