180-beegoORM增删改查






注意,
在ORM操作中
type Student struct{
	Id int
	Name string
}
在表中,会变成student
Id 会变成id
Name 会变成name
所以
在数据库中,会把首字母都变成小写
但是如果是这样
type BigStudent struct{
	BigId int
	BigName string
}
这样的话,表名变成 big_student
字段变成 big_id 和 big_name




写一下models

import (
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
)

type Student struct {
	Id int
	Name string
	Age int
}

func init() {
	orm.RegisterDataBase("default","mysql","root:123@tcp(127.0.0.1:3306)/abc?charset=utf8")


	orm.RegisterModel(new(Student))


	orm.RunSyncdb("default",false,true)
}




我们添加一个orm路由
beego.Router("/orm", &controllers.OrmController{},"get:ShowOrm")

然后我们在controllers文件夹
创建一个ormOpt.go文件

type OrmController struct{
	beego.Controller
}

func (this *OrmController) ShowOrm(){
	//1.创建orm对象
	o := orm.NewOrm()
	
	//2.获取插入对象
	var stu models.Student
	
	//3.给插入对象赋值
	stu.Id=1
	stu.Name="Alice"
	stu.Age=20
	
	//4.插入
	o.Insert(&stu)
}






现在来说一下查询
func (this *OrmController) ShowOrm(){
	o := orm.NewOrm()
	
	var stu models.Student
	
	stu.Name="Alice"

	o.Read(&stu,"Name")

	beego.Info(stu)
}

查询结果为id=1,name=Alice,age=23
所以,这里的stu相当于是一个查询条件
然后传入到Read函数
然后查询结果的字段数据
都放到了stu对象里面
就拿到了查询结果
有点意思





然后再来看更新update
func (this *OrmController) ShowOrm(){

o := orm.NewOrm()

var stu models.Student

//先查询一下,需要更新的对象是否存在
stu.Name="Alice"
err := o.Read(&stu,"Name")

//如果err不为空,那么查询的对象不存在
if err!=nil {
	beego.Error("不存在",err)
	return
}



//给更新的数据赋值
stu.Name="Bob"
stu.Age=30

//然后进行更新
o.Update(&stu)


}





然后是删除
func (this *OrmController) ShowOrm(){

o := orm.NewOrm()

var stu models.Student
stu.Name="Alice"

count,err := o.Delete(&stu,"Name")

beego.Info(count,err)

}




 

你可能感兴趣的:(beego,mysql)