model.go
package models
import (
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql" //mysql驱动
)
//标的数据
//User 用户表
type User struct {
Id int
Name string
Pwd string
}
func init() {
//用户名root 密码123123 数据库名test
orm.RegisterDataBase("default", "mysql", "root:123123@tcp(127.0.0.1:3306)/test?charset=utf8")
//映射model数据
orm.RegisterModel(new(User))
//生成表
orm.RunSyncdb("default", false, true)
}
default.go
package controllers
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
"test.first/hello/models"
)
type MainController struct {
beego.Controller
}
func (c *MainController) Get() {
// selectOne()
// update()
// delete()
c.Data["data"] = "hello world"
c.TplName = "index.html"
}
func (c *MainController) Post() {
c.Data["data"] = "你好世界"
c.TplName = "index.html"
}
func insert() {
//1.有orm对象
o := orm.NewOrm()
//2要有插入结构体对象
user := models.User{}
//2.读结构体对象赋值
user.Name = "1"
user.Pwd = "222"
//4插入
_, err := o.Insert(&user)
if err != nil {
beego.Info("插入失败", err)
return
}
}
//查询主键
func selectId() {
//orm对象
o := orm.NewOrm()
//查询对象
user := models.User{}
user.Id = 1
err := o.Read(&user)
if err != nil {
beego.Info("查询失败", err)
return
}
beego.Info("查询成功", user)
}
//查询除了主键之外的一条数据
func selectOne() {
o := orm.NewOrm()
user := models.User{}
user.Name = "1"
err := o.Read(&user, "Name")
if err != nil {
beego.Info("查询失败", err)
return
}
beego.Info("查询成功", user)
}
//按照主键更新
func update() {
//orm对象
o := orm.NewOrm()
//更新的对象
user := models.User{}
//查到更新的数据
user.Id = 1
err := o.Read(&user)
//给数据重新赋值
if err == nil {
user.Name = "222"
user.Pwd = "333"
//更新
_, err = o.Update(&user)
if err != nil {
beego.Info("更新失败")
return
}
}
//更新
}
//按主键删除
func delete() {
//orm对象
o := orm.NewOrm()
//删除的对象
user := models.User{}
//指定删除哪一条
user.Id = 2
//删除
_, err := o.Delete(&user)
if err != nil {
beego.Info("删除错误", err)
return
}
}