**
创建表
**
//结构名和属性名必须大写,不让其他程序无法访问
type User struct {
Id int
Name string
Pwd string
}
//链接数据库
orm.RegisterDataBase("default","mysql","root:123456@tcp(127.0.0.1:3360)/test?charset=utf-8")
orm.RegisterModel(new(User))//映射结构体
orm.RunSyncdb("default",false,true)//执行操作
**
插入数据
**
newOrm := orm.NewOrm()
u:=models.User{}
u.Name="asd"
u.Pwd="zcc"
_, err := newOrm.Insert(&u)
if err!=nil{
beego.Info("insert err:",err)
}
多数据插入
users := []User{
{Name: "slene"},
{Name: "astaxie"},
{Name: "unknown"},
...
}
_, err := o.InsertMulti(lens(users)), users)
if err!=nil{
beego.Info("insert err:",err)
}
读取数据
newOrm := orm.NewOrm()
u:=models.User{Id:1}
err := newOrm.Read(&u)
//u:=models.User{Name:"zxc"}
//err := newOrm.Read("name",&u)
if err==orm.ErrNoRows{
c.Ctx.WriteString("无数据")
}else if err ==orm.ErrMissPK{
c.Ctx.WriteString("no prime key")
}else {
fmt.Printf("%#v",u)
}
更新数据
//默认更新所有字段
o := orm.NewOrm()
user := User{Id: 1}
if o.Read(&user) == nil {
user.Name = "MyName"
if num, err := o.Update(&user); err == nil {
fmt.Println(num)
}
}
//单个字段更新
o.Update(&user, "Name")
删除数据
o := orm.NewOrm()
if num, err := o.Delete(&User{Id: 1}); err == nil {
fmt.Println(num)
}