跳到主要内容

数据库插件

Go-Lynx 提供了数据连接插件,我们可以不用关心如何去编写连接数据库的相关代码,只需要提供对应的数据库配置文件即可自动进行数据库连接初始化,目前部分配置参数还不够完整(例如:ssl加密通讯,多数据源配置),目前还在持续开发中,敬请期待。

数据库配置

指定数据库需要在配置文件中进行配置,文件内容如下:

lynx:
db:
driver: mysql
source: root:123@tcp(127.0.0.1:3306)/demo?parseTime=True
min_conn: 50
max_conn: 50
max_idle_time: 30s

其中的 lynx.db 相关内容就是数据库配置信息。目前默认是使用的 ent 进行数据库连接,后面会持续支持更多的 orm 框架,例如 gorm。 配置完成之后,应用程序一旦启动就会根据插件顺序进行加载数据库。

如何获取数据库连接 Driver 信息?

import (
"github.com/go-lynx/lynx/plugin/db"
)

var ProviderSet = wire.NewSet(
NewData,
db.GetDriver
)

type Data struct {
db *ent.Client
}

func NewData(dri *sql.Driver,logger log.Logger) (*Data, error) {
client := ent.NewClient(ent.Driver(dri), ent.Debug())

// 表构建
if err := client.Schema.Create(context.Background()); err != nil {
dfLog := log.NewHelper(logger)
dfLog.Errorf("failed creating database schema resources: %v", err)
return nil, err
}

d := &Data{
db: client
}
return d, nil
}

我们提供了 db.GetDriver 方法,该方法会从插件中返回连接对象信息,再配合 wire 框架帮助我们进行方法调用生成即可。以上就是如何完整的使用数据库插件的方式。