- 最近学习beego,记录一下beego中mysql和MongoDB的简单用法
mysql
- 安装orm
go get github.com/astaxie/beego/orm
- 初始化
import "github.com/astaxie/beego/orm"
orm.RegisterDriver("mysql",orm.DRMySQL)//注册数据库,数据库为mysql
orm.RegisterDataBase("default","mysql","(mysql用户名):(密码)@tcp(localhost:3306)/User?charset=utf8&loc=Local")//默认3306端口,使用User数据库
orm.RegisterModel(new(User))//注册User表,如果存在就不会再创建。
orm.RunSyncdb("default",false,true)//后一个使用true会带上很多打印信息,数据库操作和建表操作的;第二个为true代表强制创建表
&loc=Local
防止orm和正常时间不一致,也可以换成&loc=Asia%2FShanghai
。- 增删查改。
MongoDB
- 安装mgo
go get gopkg.in/mgo.v2
- 初始化
import "gopkg.in/mgo.v2"
var session *mgo.Session
var database *mgo.Database
const (
MongoDBHosts = "localhost:27017"//这里使用了默认端口
Database = "(数据库名字)"//填入数据库名字
)
func init(){
//MongoDB
mongoDBDialInfo := &mgo.DialInfo{
Addrs: []string{MongoDBHosts},//这里填数据库地址
Timeout: 60 * time.Second,
Database: Database,
PoolLimit: 4096,//
//Username: AuthUserName,
//Password: AuthPassword,
}
var err error
session, err = mgo.DialWithInfo(mongoDBDialInfo)//连接数据库
if err != nil {
log.Fatalf("CreateSession: %s\n", err)
}
session.SetMode(mgo.Monotonic, true)
database =session.DB("(数据库名字)")//使用()数据库
}
func GetMgo() *mgo.Session {
return session
}
func GetDatabase() *mgo.Database {
return database
}
参考
mysql
beego官方文档
go编程之beego\orm使用
Go语言使用Beego的ORM插入Mysql后,时区不一致的解决方案
Beego 用户注册和登陆实现
MongoDB
Running MongoDB Queries Concurrently With Go
mgo使用指南
Go实战–golang中使用MongoDB(mgo)