gpt4 book ai didi

sqlite - 戈兰/ Gin : How to Pass db to router functions

转载 作者:IT王子 更新时间:2023-10-29 01:41:29 25 4
gpt4 key购买 nike

我正在使用 gin 框架。我在主函数中像这样打开 sqlite 数据库

func main() {
...
db, err := sql.Open("sqlite3", "./libreread.db")
CheckError(err)
defer db.Close()
...
}

我在主函数中有这些路由器处理程序。

...
r.GET("/", GetHomePage)
r.GET("/signin", GetSignIn)
r.POST("/signin", PostSignIn)
...

如何通过路由器处理程序 func PostSignin(c *gin.Context) 传递该 db 值?

这样我就可以避免每次都在函数中打开和关闭数据库。

更新:我正在使用 go-sqlite3 包。

谢谢!

最佳答案

假设你在 db 中初始化了你的 sql 客户端,然后,你可以将它传递给不同的路由

r.GET("/", GetHomePageHandler(&db))

在您的 GetHomePageHandler 中:

func GetHomePageHandler(sqldb *SQLiteConn) func (*gin.Context) {
return func (*gin.Context) {
. . .
}
}

其中 *SQLiteConn 是您的 sql 数据库实例的类型。我不知道您当前使用的是哪个软件包,所以这只是一个示例。

您还可以找到更优雅的解决方法in this answer ,

关于sqlite - 戈兰/ Gin : How to Pass db to router functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44352656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com