beego mysql增删改查_beego的ORM模型增删改查

首先建立一个模型 在 项目/models/testModels.go

package models

import (

"github.com/astaxie/beego/orm" //引入beego的orm

_ "github.com/go-sql-driver/mysql" //引入beego的mysql驱动

)

//表go_archives的结构

type Archives struct {

Id int

Typeid int

Title string `orm:"size(255)"`

Body string `orm:"size(1000)"`

}

//表go_arctype的结构

type Arctype struct {

Id int

Topid int

Typename string `orm:"size(100)`

Sort int

}

func init() {

orm.RegisterDriver("mysql", orm.DR_MySQL) //注册数据库驱动

orm.RegisterDataBase("default", "mysql", "root:123456@/go?charset=utf8") //注册一个别名为default的数据库

orm.SetMaxIdleConns("default", 30) //设置数据库最大空闲连接

orm.SetMaxOpenConns("default", 30) //设置数据库最大连接数

orm.RegisterModelWithPrefix("go_", new(Archives)) //注册模型并使用表前缀

orm.RegisterModelWithPrefix("go_", new(Arctype)) //注册模型并使用表前缀

}

func (this *Archives) Show() ([]Archives, error) {

o := orm.NewOrm()

var data []Archives

_, err := o.QueryTable("go_archives").Filter("id__gt", 3).All(&data)

return data, err

}

//表go_archives的增加

func (this *Archives) Add(title, body string, typeid int) (int64, error) {

o := orm.NewOrm()

arc := Archives{Title: title, Body: body, Typeid: typeid}

id, err := o.Insert(&arc)

return id, err

}

func (this *Archives) Edit(title, body string, typeid, id int) error {

o := orm.NewOrm()

arc := Archives{Title: title, Body: body, Typeid: typeid, Id: id}

_, err := o.Update(&arc)

return err

}

func (this *Archives) Delete(id int) error {

o := orm.NewOrm()

arc := Archives{Id: id}

_, err := o.Delete(&arc)

return err

}

现在到控制器中看看我们怎么调用模型的方法的实现(增、删、改、查)项目/controllers/test.go

package controllers

import (

"fmt"

"github.com/astaxie/beego"

"github.com/astaxie/beego/orm"

"strconv"

"test/models"

)

type TestController struct {

beego.Controller

}

var arc models.Archives

func (this *TestController) Show() {

data, err := arc.Show()

fmt.Println(data, err)

}

func (this *TestController) Add() {

title := "测试标题"

body := "测试内容"

typeid := 1

id, err := arc.Add(title, body, typeid)

fmt.Println(id, err)

}

func (this *TestController) Edit() {

title := "测试标题"

body := "测试内容"

typeid := 1

id := 1

err := arc.Edit(title, body, typeid, id)

fmt.Println(err)

}

func (this *TestController) Delete() {

id := 1

err := arc.Delete(id)

fmt.Println(err)

}

go的结构很灵活,beego的框架很简单,只要是略懂MVC就行了,关键部分在GO的基础

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值