- 新增「简记memo」一体化小程序产品原型设计文档 - 新增简记memo完整版UI视觉设计规范和界面细节 - 添加IDEA项目配置文件.gitignore - 创建404页面HTML文件,包含响应式布局和错误提示 - 添加关于页面HTML文件,展示品牌介绍和团队信息 - 实现AES加解密工具函数,支持请求体加密 - 添加用户协议页面基础框架
51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
// MySQL初始化 + 表前缀sm_(已修复GORM兼容报错)
|
||
package core
|
||
|
||
import (
|
||
"simple-memo/global"
|
||
"time"
|
||
|
||
"gorm.io/driver/mysql"
|
||
"gorm.io/gorm"
|
||
"gorm.io/gorm/logger"
|
||
"gorm.io/gorm/schema"
|
||
)
|
||
|
||
// InitMysql 初始化MySQL数据库连接
|
||
func InitMysql() {
|
||
// 从配置文件读取数据库信息
|
||
host := global.VP.GetString("mysql.host")
|
||
port := global.VP.GetString("mysql.port")
|
||
dbname := global.VP.GetString("mysql.dbname")
|
||
username := global.VP.GetString("mysql.username")
|
||
password := global.VP.GetString("mysql.password")
|
||
|
||
// MySQL 连接字符串
|
||
dsn := username + ":" + password + "@tcp(" + host + ":" + port + ")/" + dbname + "?charset=utf8mb4&parseTime=True&loc=Local"
|
||
|
||
// 打开数据库连接,启用表前缀sm_
|
||
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
|
||
Logger: logger.Default.LogMode(logger.Info),
|
||
// ========== 修复:正确设置表前缀,无报错 ==========
|
||
NamingStrategy: schema.NamingStrategy{
|
||
TablePrefix: "sm_", // 所有表统一前缀:sm_
|
||
SingularTable: true, // 禁用表名复数(User → sm_user)
|
||
},
|
||
})
|
||
if err != nil {
|
||
panic("MySQL连接失败:" + err.Error())
|
||
}
|
||
|
||
// 设置数据库连接池,支撑高并发
|
||
sqlDB, err := db.DB()
|
||
if err != nil {
|
||
panic("获取数据库连接失败:" + err.Error())
|
||
}
|
||
sqlDB.SetMaxOpenConns(100) // 最大打开连接数
|
||
sqlDB.SetMaxIdleConns(20) // 最大空闲连接数
|
||
sqlDB.SetConnMaxLifetime(30 * time.Minute) // 连接最长存活时间
|
||
|
||
// 赋值给全局DB变量
|
||
global.DB = db
|
||
}
|