go语言使用单例模式封装数据库连接池
package singledb
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
"sync"
)
// 数据库连接对象只有一个
var (
db *gorm.DB
Once sync.Once //只执行一次某个操作的机制
)
func GetDbInstance() *gorm.DB {
Once.Do(func() {
var err error
dsn := "root:root@tcp(127.0.0.1:8889)/shop"
db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("数据库连接失败")
}
})
return db
}

浙公网安备 33010602011771号