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
    }
}
Last modification:April 22, 2022
如果觉得我的文章对你有用,请随意赞赏