package dao
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
"io/ioutil"
"gopkg.in/yaml.v2"
"fmt"
)
//指定驱动
const DRIVER = "mysql"
var SqlSession *gorm.DB
//配置参数映射结构体
type conf struct {
Url string `yaml:"url"`
UserName string `yaml:"userName"`
Password string `yaml:"password"`
DbName string `yaml:"dbname"`
Port string `yaml:"post"`
}
//获取配置参数数据
func (c *conf) getConf() *conf {
//读取resources/application.yaml文件
yamlFile, err := ioutil.ReadFile("resources/application.yaml")
//若出现错误,打印错误提示
if err != nil {
fmt.Println(err.Error())
}
//将读取的字符串转换成结构体conf
err = yaml.Unmarshal(yamlFile, c)
if err != nil {
fmt.Println(err.Error())
}
return c
}
//初始化连接数据库,生成可操作基本增删改查结构的变量
func InitMySql()(err error) {
var c conf
//连接数据库
SqlSession,err =gorm.Open(DRIVER,c.ConnectUrl())
if err !=nil{
panic(err)
}
//验证数据库连接是否成功,若成功,则无异常
return SqlSession.DB().Ping()
}
//数据库连接字符串
func (c conf) ConnectUrl() string {
//获取yaml配置参数
conf:=c.getConf()
//将yaml配置参数拼接成连接数据库的url
return fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
conf.UserName,
conf.Password,
conf.Url,
conf.Port,
conf.DbName,
)
}
//关闭数据库连接
func Close() {
SqlSession.Close()
}
生瓜蛋子
- 粉丝: 3927
- 资源: 7441
最新资源
- rosserial-noetic-devel.zip
- 期末大四实训去前端加后端完成萤火商城项目内容
- 16 PIN TYPE C 2D整套图纸
- MATLAB驱动防滑转模型ASR模型 ASR模型驱动防滑转模型 ?牵引力控制系统模型 选择PID控制算法以及对照控制算法,共两种控制算法,可进行选择 选择冰路面以及雪路面,共两种路面条件,可进行选择
- Siemens PADS Standard 标准版 VX.2.15安装流程分享
- ubuntu22.04 RTL8152 driver
- 网络安全漏洞有偿 n个平台
- #temp#513465145#_现场物料需求单-20240946643434343.xlsx
- jdk-17.0.13-windows-x64-bin
- 第09章 文件查找与打包压缩
- 学生作业-作业打卡消消消 该项目为html前端项目,依据学生作业提交情况,通过点击名字进行打卡消除 涉及html、js、css,其中js中涉及监听函数;窗口中的列表数据来源于data.js,可自行修改
- CH32V208GBU6关闭PWM20250107-220243.7z
- 2024年河南省高等职业教育技能大赛(软件测试技术与应用)赛项竞赛官方样题(共五套)
- i.MX93实现RS458通信
- 2024年河南省高等职业教育技能大赛(移动应用设计与开发)赛项竞赛官方样题(共五套)
- 2000-2010年各省第三产业就业人数数据.xlsx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈