golang学习之beego增删改查代码实现
记录下使用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()
}
golang学习之beego增删改查代码实现的更多相关文章
- ASP.NET从零开始学习EF的增删改查
ASP.NET从零开始学习EF的增删改查 最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...
- java DMO及增删改查代码的自动生成
在web开发过程中,尤其是后台管理系统的开发中,少不了增删改成的基础操作,原来我自己的做法是一份一份的拷贝粘贴,然后修改其中的不同,然而这样既枯燥无味又浪费了大量的时间,所以根据自己项目结构的特点写了 ...
- 最简单的jsp+servlet的增删改查代码
package ceet.ac.cn.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...
- EF学习笔记——通用增删改查方案
http://blog.csdn.net/leftfist/article/details/25005307 我刚接触EF未久,还不知道它有什么强大之处,但看上去,EF提供了一般的增删改查功能.以往用 ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
- http://www.cnblogs.com/nangong/p/db29669e2c6d72fb3d0da947280aa1ce.htm ASP.NET从零开始学习EF的增删改查
http://www.cnblogs.com/nangong/p/db29669e2c6d72fb3d0da947280aa1ce.htmlASP.NET从零开始学习EF的增删改查
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- Android学习---数据库的增删改查(sqlite CRUD)
上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...
- 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查
本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...
随机推荐
- nowcoder(牛客网)OI测试赛3 解题报告
昨天因为胡搞了一会儿社团的事情,所以错过(逃过)了nowcoder的测试赛..... 以上,听说还是普及组难度qwq,而且还有很多大佬AK(然而我这么蒻肯定还是觉得有点难度的吧qwq) 不过我还是日常 ...
- linux开始之旅-01 linux需要知道的这几位
首先介绍几个人,没有这几个人就没有linux. 第一个:肯·汤普逊(左)和丹尼斯·里奇(右) ------ C语言之父 ------学计算机的人都应该认识吧,计算机学院楼道里面都会有这两位. 美 ...
- 【转】【C++专题】C++ sizeof 使用规则及陷阱分析
提示:下文例子都经过Visual C++ 6.0验证,平台为win32 Windows. 一.什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gi ...
- nginx高性能WEB服务器系列之八--nginx日志分析与切割
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- 范围for、new内存动态分配、nullptr
一.范围for语句:用于遍历一个序列 ,,,,}; for(auto &x : v) // 省了拷贝的动作,提高了系统效率 { cout << x << endl; } ...
- CH5101 LCIS
CH5101 LCIS 题意: 求两个长度不超过3000的序列的最长公共上升子序列 思路: 朴素解法:用f[i,j]表示a1~ai与b1~bj可以构成的以bj为结尾的LCIS的长度,三重循环求解: ; ...
- JQuery的get、post、ajax方法
1.jQuery $.get() 方法 $.get() 方法通过 HTTP GET 请求从服务器上请求数据. jQuery.get( url, [data], [callback] ): 参数: ...
- 深入理解计算机系统10——系统级I/O
系统级I/O 输入/输出 是在主存和外部设备之间拷贝数据的过程. 外部设备可以是:磁盘驱动器.终端和网络. 输入和输出都是相对于主存而言的. 输入是从I/O设备拷贝数据到主存.输出时从主存拷贝数据到I ...
- autokeras 在windows10下的安装与使用
注意:autokeras只适用于python3.6 先打开命令行(cmd), 输入 python --version 查看python版本,是否需要降级和升级. 降级的命令如下: conda inst ...
- 分享一下Ubuntu好用的源
vim /etc/apt/sources.list 然后用G跳转到最后一行,然后[ESC]切换到命令行模式,然后键入[o](表示在当前行后插入).也可以多插入几个空行.这样可以有条理的和系统默认的区分 ...