导入MySQL驱动之前,需要将驱动下载回来
go get -u github.com/go-sql-driver/mysql (确保已经安装了git)
import (
"database/sql/driver"
)
连接数据库:
const (
dataSoureNameInfo = "username:password@tcp(IP:4306)/database?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai"
)
var db *gorm.DB
func Init() {
client, err := gorm.Open("mysql", dataSoureNameInfo)
if err != nil {
log.Error("mysql 异常: ", nil)
panic(err)
}
db = client
}
创建数据库表对应的model:
type ApiCase struct {
Id int `json:"id" gorm:"column:id"`
Level int `json:"level" gorm:"column:level"`
ParentId int `json:"parentid" gorm:"column:parentid"`
IsTestExec string `json:"is_test_exec" gorm:"column:is_test_exec"`
CaseName string `json:"case_name" gorm:"column:case_name"`
}
func GetCaseList(limit, offset int, env, run string) (int, []*ApiCase, error, error) {
info := ApiCase{}
count := 0
sql := "id > 0 "
if run != "all" {
sql += " and is_test_exec='" + run + "'"
}
if env != "all" {
sql += " and case_env='" + env + "'"
}
log.Info("根据case环境类型查找case的sql:", sql)
err := db.Where(sql).Model(info).Count(&count).Error
result := make([]*ApiCase, 0)
return count, result, db.Where(sql).Limit(limit).Offset(offset).Order("id desc").Find(&result).Error, err
}