修改gorm

This commit is contained in:
JACKYMYPERSON
2025-09-13 20:00:52 +08:00
parent 0a94f9c443
commit 38e52eadd6

View File

@@ -1,15 +1,19 @@
package databaseInit package databaseInit
import ( import (
"database/sql"
"fmt" "fmt"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"log"
"os" "os"
"time"
"toutoukan/model/config" "toutoukan/model/config"
) )
var UserDB *sql.DB var UserDB *gorm.DB
var Dsn string
func DbInit() { func DbInit() {
data, err := os.ReadFile("./config.yaml") data, err := os.ReadFile("./config.yaml")
@@ -32,21 +36,25 @@ func DbInit() {
config.Database.Params, config.Database.Params,
) )
Dsn = dsn
fmt.Println("DSN:", dsn) fmt.Println("DSN:", dsn)
UserDB, err = sql.Open("mysql", dsn) UserDB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil { if err != nil {
panic(fmt.Errorf("数据库连接失败1: %w", err)) log.Fatal(err)
} }
// 验证连接是否可用 sqlDB, err := UserDB.DB()
if err := UserDB.Ping(); err != nil { if err != nil {
panic("数据库连接不可用2") log.Printf("获取数据库连接池失败: %v", err)
return
} }
// 置连接池参数 // 3. 配置连接池参数
UserDB.SetMaxOpenConns(10) // 最大打开连接数 sqlDB.SetMaxOpenConns(50) // 最大打开连接数(并发连接上限,根据服务器性能调整)
UserDB.SetMaxIdleConns(5) // 最大空闲连接数 sqlDB.SetMaxIdleConns(20) // 最大空闲连接数(保持一定空闲连接,避免频繁创建)
UserDB.SetConnMaxLifetime(0) // 连接最大存活时间(0表示不限制 sqlDB.SetConnMaxLifetime(30 * time.Minute) // 连接最大存活时间(防止连接过期
sqlDB.SetConnMaxIdleTime(10 * time.Minute) // 连接最大空闲时间
} }