beego api连接mysql_Golang Beego Api连接Mysql简单示例(集成Swagger和Convey单测)

1.工程创建步骤如下,

如要集成swagger,请注意使用下面的语句启动beego。

bee run -downdoc=true -gendoc=true

2.连接 mysql 数据库。

先要安装两个包,

如下,

go get github.com/astaxie/beego/orm

go get github.com/go-sql-driver/mysql

其次有一个坑,就是必须要先建一个别名为default的数据库,才能启动连接。

而且这个建库的操作最好是在models里面,实测的话,框架先加载models,然后才去运行main包里面的init函数,单元测试直接测试models也是只加载models。

另一个问题是RegisterDatabase这个函数只能调一次,对同一个 数据库 别名来说,只能调一次。所以要先判断要注册的数据库是否已经注册了。如果已注册,就不要再注册了,否则又会报错。所以写了一个class来处理这个问题。

具体的代码如下,

dbinit.go源代码,

package models

import (

"database/sql"

"github.com/astaxie/beego"

"github.com/astaxie/beego/logs"

"github.com/astaxie/beego/orm"

_ "github.com/go-sql-driver/mysql"

)

type DBInit struct {

Db *sql.DB

}

func DBInitNew() *DBInit {

db, _ := orm.GetDB()

dbInit := DBInit{Db: db}

return &dbInit

}

func (dbInit *DBInit) InitDatabase() {

if dbInit.Db == nil {

beego.LoadAppConfig("ini", "..\\conf\\app.conf")

orm.RegisterDriver("mysql", orm.DRMySQL)

dbType := beego.AppConfig.String("dbType")

sqlConn := beego.AppConfig.String("sqlconn")

maxIdle, _ := beego.AppConfig.Int("maxIdle")

maxConn, _ := beego.AppConfig.Int("maxConn")

logs.Info("Connect to [%v] database with conn: [%v] \n", dbType, sqlConn)

orm.RegisterDataBase("default", dbType, sqlConn, maxIdle, maxConn)

orm.Debug = true

}

}

3.代码目录结构如下,

4ed405a56fd95f3b7994154274f4a901.png

image.png

4.Swagger生成的API测试界面如下。

1387e2bde2074420c4af733ea0c60a72.png

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值