(EDITING修復大小寫並添加上下文)全局var out out中的init.go
在revel的init.go中,我有一個全局var:DB。
package app
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/revel/revel"
)
var DB *sql.DB
func InitDB() {
connstring := fmt.Sprintf("revel:[email protected](localhost:3336)/revel")
var err error
DB, err = sql.Open("mysql", connstring)
if err != nil {
revel.INFO.Println("DB Error", err)
}
}
如何在應用程序的其餘部分獲取該數據庫變量?具體來說,我打算在模型中使用這個var。
首先,我將如何讓它在這個控制器中工作? 控制器/ app.go
package controller
func (c App) Index() revel.Result {
rows, err := app.DB.Exec("SELECT * FROM test_table")
//do something with rows
return c.Render()
}
這是在'包主'或庫? – elithrar
它在包應用程序(init.go文件)中。我試圖訪問,是在任何地方。 – Chemdream
在同一個包中只需調用db.Query(或其他方法),如果需要從另一個包中訪問它,則需要將其導出爲'DB'.小寫變量是私有的 – elithrar