对于beego要求有一个默认的数据库连接,我在入口进行了指定
项目结构如下
![](https://img.haomeiwen.com/i2377654/ee9012c744f782a3.png)
func main() {
_ = orm.RegisterDataBase("default", "mysql", "root:@tcp(127.0.0.1:3306)/shenshen?charset=utf8", 30)
_ = orm.RunSyncdb("default", false, true)
//o := orm.NewOrm()
//_ = o.Using("default") //可以不指定
beego.Run()
}
1、查询
//models包里的user
// GetUserById retrieves User by Id. Returns error if
// Id doesn't exist
func GetUserById(id int64) (v *User, err error) {
o := orm.NewOrm()
v = &User{Id: id}
if err = o.QueryTable(new(User)).Filter("Id", id).RelatedSel().One(v); err == nil {
return v, nil
}
return nil, err
}
//查询
a, res := models.GetUserById(1)
2、新增单条数据
//models包里的user
// AddUser insert a new User into database and returns
// last inserted Id on success.
func AddUser(m *User) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
//添加数据
var user models.User
user.UserName = "hhhh"
fmt.Println(user)
//这里的参数是user的地址
id, err := models.AddUser(&user)
fmt.Println(id, err)
3、新增多条数据
//models包里的user
func InsertMulti(users []User) (successNumber int64, err error) {
o := orm.NewOrm()
successNumber, err = o.InsertMulti(len(users), users)
return
}
var user models.User
user.UserName = "hhhh"
//执行插入多条数据
number, err := models.InsertMulti([]models.User{user, user})
fmt.Println(number, err)
返回
2 <nil>
2019/05/06 12:34:15.640 [D] [server.go:2774] | 127.0.0.1| 200 | 37.9063ms| match| GET / r:/
2表示插入成功两条 <nil> 表示失败0条
4、更新数据
//models包里的user
func UpdateUserById(m *User) (err error) {
o := orm.NewOrm()
v := User{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
更新数据
var user models.User
user.UserName = "hhhh"
user.Id = 1
err = models.UpdateUserById(&user)
fmt.Println(err)
5、删除
func DeleteUser(id int64) (err error) {
o := orm.NewOrm()
v := User{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&User{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
models.DeleteUser(2)
网友评论