首先来说其实前面讲配置文件的时候讲过了怎么连接数据库并操作,在这详细说下
连接数据库首先读取配置文件
初始化数据库连接
// InitDatabase Mysql init
func InitDatabase(url, username, password, dbname, timezone string, name string) error {
dsn := username + ":" + password + "@(" + url + ")/" + dbname + "?charset=utf8" + timezone
err := orm.RegisterDataBase(name, "mysql", dsn)
return err
}
// InitDB database init
func InitDB() error {
var err error
var errStr string
fmt.Println(config.GCfg.Test.Url,config.GCfg.Test.Username,
config.GCfg.Test.Password,
config.GCfg.Test.TableName)
// load dcgc mysql database
err = InitDatabase(
config.GCfg.Test.Url,
config.GCfg.Test.Username,
config.GCfg.Test.Password,
config.GCfg.Test.TableName,
"&loc="+url.QueryEscape(config.GCfg.TimeZone.TimeZone),
"default")
if err != nil {
errStr = errStr + fmt.Sprintf("models dcgcdb init failed, %s.", err)
}
if errStr != "" {
return errors.New(errStr)
}
return nil
}
连接之后怎么使用呢
一般操作数据库首先要先构建与表对应的结构体,通过orm连接数据库,对数据库进行操作
package models
import (
"github.com/astaxie/beego/orm"
)
type User struct {
ID int64 `orm:"column(id);pk;auto"`
Username string `orm:"column(username);size(32);unique"` // 用户名
Password string `orm:"column(password);size(64)"` // 加密后的密码
}
func GetUserByAccessID(accessID string) (v *User, err error) {
o := orm.NewOrm()
if err = o.Read(v, "id"); err == nil {
return v, nil
}
return nil, err
}
具体操作可以根据这个来写
数据库操作