【发布时间】:2018-06-08 00:23:25
【问题描述】:
我正在学习 Go,最近我学会了如何利用 gorm 连接到数据库。我不知道如何导入所述连接。仅在func main() 范围内打开和延迟关闭
我目前拥有的:
func main(){
db, _ := gorm.Open("postgres", "host=localhost port=5432 user=someUser dbname=someDB password=somePW sslmode=disable")
defer db.Close()
}
这很好用,我可以创建表并执行 CRUD ......但所有这些都在 main 函数中。
无论如何我可以做这样的事情(它不起作用)并在 main 中使用它:
func db(){
db, _ := gorm.Open("postgres", "host=localhost port=5432 user=someUser dbname=someDB password=somePW sslmode=disable")
defer db.Close()
return db
}
或者定义一些也可以让我这样做的包。
我知道 defer 基本上只会在 db 返回后关闭连接,但希望你们能得到我想要的。
【问题讨论】:
-
dataBase := db()是这样的吗?编译器不喜欢这样 -
是的,有道理,所以数据库的实例不能导入到其他文件中?
-
在这种情况下,参数的类型是什么?