我想从不同的处理程序调用db,这是我的mysql.go: 包常见
private Map<Category, List<Attribute>> attributesMap=new HashMap<>();
private List<Attribute> attributesByCategory;
public void almacenarModulos(Categorycategory)
{
attributesMap.put(category,attributesByCategory);
}
这是我想要做的,但我不知道我如何将db从普通包调用到另一个包中(我尝试使用common.db但它不起作用):
包装模型
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
var err error
//db connection
func connectDB() {
db, err = sql.Open("mysql", "root@tcp(localhost:3306)/mysqlapi")
if err != nil {
fmt.Println(err.Error())
}
defer db.Close()
//test connection
err = db.Ping()
if err != nil {
fmt.Println(err.Error())
}
//table migration
stmt, err := db.Prepare("CREATE TABLE person (id int NOT NULL AUTO_INCREMENT, first_name varchar(40), last_name varchar(40), PRIMARY KEY (id));")
if err != nil {
fmt.Println(err.Error())
}
_, err = stmt.Exec()
if err != nil {
fmt.Println(err.Error())
} else {
fmt.Println("Person Table successfully migrated....")
}
}
答案 0 :(得分:0)
您需要像这样编写db var:
package common
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
var Db *sql.DB
var Err error
在Golang Capital中,意味着将其导出到包裹之外。您可以了解有关此问题的更多信息here