下面由golang教程栏目给大家介绍Golang 全局sql数据库连接,希望对需要的朋友有所帮助!

Golang 如何把sql数据库连接写成全局的,不用每次频繁创建销毁,减少数据库消耗与代码复杂度。
数据库连接通常在model层下的db.go中定义(命名自定义,也可以是database或者sql,与数据库相关)
因为我这里是使用mongodb所以为model/mgo.go
package model
import (
"context"
_ "fmt"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"log"
"time"
)
type mgo struct {
uri string //数据库网络地址
database string //要连接的数据库
//collection string //要连接的集合
}
var (
DB *mongo.Database
)
func Connect() (*mongo.Database, error) {
var m = &mgo{
"mongodb://localhost:27017",
"数据库名",
//"数据库表名",
}
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
client, err := mongo.Connect(ctx, options.Client().ApplyURI(m.uri))
if err != nil {
log.Print(err)
}
DB = client.Database(m.database)
return DB, err
}然后在main.go中初始化
func main() {
//初始化mongodb
model.Connect()
}需要进行数据库操作时,直接调用model中的DB即可
collection := model.DB.Collection("表名")
//插入操作
insertResult, err := collection.InsertOne(context.TODO(), "内容")mysql或者其它数据库或者gorm框架之类的,都是同理。
在原版的基础上做了一下修正:增加1st在线支付功能与论坛用户数据结合,vip也可与论坛相关,增加互动性vip会员的全面修正评论没有提交正文的问题特价商品的调用连接问题删掉了2个木马文件去掉了一个后门补了SQL注入补了一个过滤漏洞浮动价不能删除的问题不能够搜索问题收藏时放入购物车时出错点放入购物车弹出2个窗口修正定单不能删除问题VIP出错问题主题添加问题商家注册页导航连接问题添加了导航FLASH源文
0
更多相关技术文章,请访问go语言教程栏目!
立即学习“go语言免费学习笔记(深入)”;
以上就是关于Golang 全局sql数据库连接的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号