文档章节

golang学习之beego增删改查代码实现

c
 caiyezi
发布于 2016/11/08 20:24
字数 420
阅读 293
收藏 0

记录下使用beego的增删改查实现,数据库使用mysql,完整代码如下:

package main

import (
    _ "crud_beego/routers" //自动注册路由
    "fmt"
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
)

const (
    DRIVER_NAME   = "mysql"
    DATA_SOURCE   = "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8&loc=Asia%2FShanghai"
    MAX_IDLE_CONN = 5
    MAX_OPEN_CONN = 30
)

type User struct {
    Id       int
    Name     string
    Email    string
    Age      int
    isActive bool
}

func (u *User) TableName() string {
    return "t_user"
}

func registerDB() {
    orm.Debug = true
    orm.RegisterDataBase("default", DRIVER_NAME, DATA_SOURCE, MAX_IDLE_CONN, MAX_OPEN_CONN)
    orm.RegisterModel(new(User))
}

func (this User) ToString() string {
    return fmt.Sprintf("Id:%d\tName:%s\tEmail:%s\tAge:%d\tisActive:%v", this.Id, this.Name, this.Email, this.Age, this.isActive)
}

func createUsers() {
    users := []User{
        User{Name: "adadmin1", Email: "14199@111.com", Age: 12},
        User{Name: "adadmin1", Email: "14199@111.com", Age: 12},
        User{Name: "adadmin1", Email: "14199@111.com", Age: 12},
        User{Name: "adadmin1", Email: "14199@111.com", Age: 12},
        User{Name: "adadmin1", Email: "14199@111.com", Age: 12},
        User{Name: "adadmin1", Email: "14199@111.com", Age: 12},
        User{Name: "adadmin1", Email: "14199@111.com", Age: 12},
    }
    o := orm.NewOrm()
    if successNums, err := o.InsertMulti(len(users), users); err != nil {
        fmt.Println("insert fail.....")
    } else {
        fmt.Println("success inserted %d datas", successNums)
    }
}

//find all users
func listUsers() {
    var users []User
    orm.NewOrm().QueryTable("t_user").All(&users)
    for _, user := range users {
        fmt.Println(user.ToString())
    }
}

//get user count
func countUser() {
    cnt, _ := orm.NewOrm().QueryTable("t_user").Count()
    fmt.Println("All user count:", cnt)
}

//get the only one user
func getUser() {
    var user User
    err := orm.NewOrm().QueryTable("t_user").Filter("Id", 5).One(&user)
    if err == nil {
        fmt.Println(user.ToString())
    }
}

//get the only one user
func getUsers() {
    var users []User
    _, err := orm.NewOrm().QueryTable("t_user").Filter("name__contains", "awd").All(&users)
    if err == nil {
        for _, user := range users {
            fmt.Println(user.ToString())
        }
    }
}

//get limit user
func limitUser() {
    var users []User
    _, err := orm.NewOrm().QueryTable("t_user").Limit(6).OrderBy("-Name").All(&users)
    if err == nil {
        for _, user := range users {
            fmt.Println(user.ToString())
        }
    }
}

//get user limit,offset
func limitoffsetUser() {
    var users []User
    _, err := orm.NewOrm().QueryTable("t_user").Limit(1, 4).OrderBy("Id").All(&users)
    if err == nil {
        for _, user := range users {
            fmt.Println(user.ToString())
        }
    }
}

//del user
func delUser() {
    num, err := orm.NewOrm().QueryTable("t_user").Filter("Id", "5").Delete()
    fmt.Printf("Affected Num: %s, %s", num, err)
}

//update user
func updateUser() {
    num, err := orm.NewOrm().QueryTable("t_user").Filter("name__contains", "awd").Update(orm.Params{
        "name": "#########",
    })
    fmt.Printf("Affected Num: %s, %s", num, err)
}

func main() {
    registerDB()
    createUsers()
    listUsers()
    countUser()
    getUser()
    getUsers()
    limitoffsetUser()
    delUser()
    updateUser()
    beego.Run()
}

 

本文转载自:http://www.cnblogs.com/vipzhou/p/5559797.html

共有 人打赏支持
c
粉丝 1
博文 108
码字总数 0
作品 0
西安
程序员
私信 提问
MVC代码自动生成器--BeegoCURD

BeegoCURD 还在为写CURD而烦躁吗,还在为代码格式规范统一而烦恼吗,还在为没时间找女朋友找借口吗? BeegoCURD基于Beego,Bootstrap3,JQuery三个牛哄哄的框架生成MVC代码,让你不用一秒(视硬件配...

开源大帅逼
2017/07/23
288
1
golang: beego自动化部署

springboot: springboot+mongodb+docker实例 golang: beego自动化部署 数据库管理平台NetopGO简介 Go语言开发 Go语言圣经(中文版) Go语言(golang)开源项目大全 Go语言诞生5周年!10大Go语言...

d_watson
2016/05/20
233
0
beego开发轻博客——第三讲 项目整合(三)

【小鸡软件】beego开发轻博客 本章目标:添加页面路由,能正常访问轻博客页面 github: 打开后,点击右上角star按钮 码云: 打开后,点击右上角star按钮 beego添加路由功能 beego 添加路由 通过...

qq归位
2018/07/20
0
0
beego的ORM模型增删改查

首先建立一个模型 在 项目/models/testModels.go package models import ("github.com/astaxie/beego/orm" //引入beego的orm_ "github.com/go-sql-driver/mysql" //引入beego的mysql驱动) /......

别人说我名字很长
2014/02/26
0
0
bootstrap中使用datatables

今天大象研究了下datatables表格,下面来介绍下datatables,我是在bootstrap中使用的,引入必须的JS后就可以开始使用了,首先表格的HTML <div class="row-fluid"> datatables增删改查的实...

别人说我名字很长
2014/03/28
0
2

没有更多内容

加载失败,请刷新页面

加载更多

二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
0
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
1
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
3
0
Java并发编程:深入剖析ThreadLocal

ThreadLocal 的理解 ThreadLocal,很多地方叫线程本地变量,或线程本地存储。ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量。===》解决的问题是线程间...

细节探索者
昨天
2
0
【Python3之异常处理】

一、错误和异常 1.错误 代码运行前的语法或者逻辑错误 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) def test: ^SyntaxError: invalid...

dragon_tech
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部