在入口main.go文件中添加init方法
func init() {
// 获取配置文件数据库配置信息
driverName := beego.AppConfig.String("drivername")
mysqlUser := beego.AppConfig.String("mysqluser")
mysqlPass := beego.AppConfig.String("mysqlpass")
mysqlUrls := beego.AppConfig.String("mysqlurls")
mysqlPort := beego.AppConfig.String("mysqlport")
mysqlDb := beego.AppConfig.String("mysqldb")
orm.RegisterDriver(driverName, orm.DRMySQL)
// 参数1 数据库的别名,用来在 ORM 中切换数据库使用
// 参数2 driverName
// 参数3 对应的链接字符串
// 参数4(可选) 设置最大空闲连接
// 参数5(可选) 设置最大数据库连接 (go >= 1.2)
maxIdle := 30
maxConn := 30
orm.RegisterDataBase("default", driverName, "" +
mysqlUser + ":" + mysqlPass +"@tcp("+ mysqlUrls +":" + mysqlPort +")/" + mysqlDb + "?charset=utf8", maxIdle, maxConn)
models.InitRegisterModel()
}
在models目录下创建modes.go文件添加下面方法
/*
初始化时注册模型
*/
func InitRegisterModel() {
orm.RegisterModel(new(Demo))
}
使用CURD操作数据库,需要注册模型
/*
--------------------------------
使用CURD操作数据库,需要注册模型
orm.RegisterModel(new(Demo))
--------------------------------
*/
type Demo struct {
Id int `json:"id"`
Name string `json:"name"`
Email string `json:"email"`
Mobile string `json:"mobile"`
Age int `json:"age"`
IsDelete int `json:"is_delete"`
Sex int `json:"sex"`
Qq int `json:"qq"`
Status int `json:"status"`
}
通过主键id查询
/*
通过主键id查询
*/
func GetDemoOneById(id int) Demo {
demo := Demo{Id: id}
err := orm.NewOrm().Read(&demo)
if err == orm.ErrNoRows {
fmt.Println("查询不到")
} else if err == orm.ErrMissPK {
fmt.Println("找不到主键")
} else {
fmt.Println(demo.Id, demo.Name)
}
return demo
}
查询如下
通过主键id删除
/*
通过主键id删除
*/
func DeleteDemoById(id int) int64 {
demo := Demo{Id: id}
num, err := orm.NewOrm().Delete(&demo)
if err == nil {
return num
}
return 0
}
通过主键id更新
/*
通过主键id更新
*/
func UpdateDemoById(id int) int64 {
demo := Demo{Id: id}
if orm.NewOrm().Read(&demo) == nil {
demo.Name = "孙权"
demo.Mobile = "13388888888"
num, err := orm.NewOrm().Update(&demo)
if err == nil {
return num
}
}
return 0
}
添加数据
/*
添加数据
*/
func InsertDemo() int64 {
demo := Demo{
Name: "孙权",
Email: "xionganxinqu@126.com",
Mobile: "13399999999",
Age: 20,
IsDelete: 1,
Sex: 1,
Qq: 888666555,
Status: 1,
}
num, err := orm.NewOrm().Insert(&demo)
if err == nil {
return num
}
return 0
}
注意:使用CURD操作表必须要有主键