2 回答
TA贡献1809条经验 获得超8个赞
Golang 对变量声明的要求很严格,在Golang FAQs中也有提到:
未使用的变量的存在可能表示存在错误,而未使用的导入只会减慢编译速度,随着时间的推移,随着程序积累代码和程序员,这种影响可能会变得很明显。由于这些原因,Go 拒绝使用未使用的变量或导入来编译程序,以短期便利换取长期构建速度和程序清晰度。
不过,解决这种情况很容易。使用空白标识符让未使用的东西在您开发时保留下来。
_, err := sql.Open("mysql", "root:Berlin2018@/jplatform")
但是由于您想要通过创建连接来创建数据库实例。我建议通过从函数返回来使用它,或者您可以通过将 ping 发送到数据库服务器来检查连接是否正常工作:
var DB *sql.DB
func Connect() {
DB, err := sql.Open("mysql", "root:Berlin2018@/jplatform")
if err = DB.Ping(); err != nil {
log.Panic(err)
}
}
或者您可以创建一个结构,您可以在任何地方使用它,包括为每个需要 db 连接来查询数据库的函数使用方法接收器
type Env struct {
db *sql.DB
}
func Connect() {
db, err := sql.Open("mysql", "root:Berlin2018@/jplatform")
_ = &Env{db: db}
}
func(env *Env) getDataFromDatabase(){}
TA贡献1829条经验 获得超9个赞
您没有DB在以下位置使用变量db.go:
package db
import (
"database/sql"
)
var DB *sql.DB
func Connect() {
con, err := sql.Open("mysql", "root:Berlin2018@/jplatform")
if err != nil {
panic(err.Error())
}
DB = con
}
func Close() {
DB.Close()
}
- 2 回答
- 0 关注
- 135 浏览
添加回答
举报