安装Go

下载go并安装, 配置环境变量

export GOPATH=/Users/guands/dev/go
export GOBIN=$GOPATH/bin
PATH=$PATH:$GOBIN

安装Beego

进入到go目录src下, 执行以下命令:
go get github.com/astaxie/beego
go get github.com/beego/bee

如果安装失败, 需要配置环境变量:
export GO111MODULE=on
export GOPROXY=https://goproxy.cn

安装bee:
go install github.com/astaxie/bee

验证bee:
bee version

创建项目

  1. 创建项目: bee new beego_demo
  2. 进入项目: cd beego_demo
  3. 启动项目: bee run
    访问主页 http://localhost:8089

MySQL

CREATE TABLE `region` (`code` varchar(32) NOT NULL COMMENT '行政编码',`name` varchar(128) NOT NULL COMMENT '名称',`parent_code` varchar(32) NOT NULL COMMENT '父级行政编码',PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='行政划分区域';INSERT INTO `region` VALUES ('1101', '市辖区', '11');
INSERT INTO `region` VALUES ('110101', '东城区', '1101');
INSERT INTO `region` VALUES ('110101001', '东华门街道', '110101');
INSERT INTO `region` VALUES ('110101001001', '多福巷社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001002', '银闸社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001005', '东厂社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001006', '智德社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001007', '南池子社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001009', '灯市口社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001010', '正义路社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001013', '台基厂社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001014', '韶九社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101001015', '王府井社区居委会', '110101001');
INSERT INTO `region` VALUES ('110101002', '景山街道', '110101');
INSERT INTO `region` VALUES ('110101002001', '隆福寺社区居委会', '110101002');
INSERT INTO `region` VALUES ('110101002002', '吉祥社区居委会', '110101002');
INSERT INTO `region` VALUES ('110101002003', '黄化门社区居委会', '110101002');
INSERT INTO `region` VALUES ('110101002004', '钟鼓社区居委会', '110101002');
INSERT INTO `region` VALUES ('110101002005', '魏家社区居委会', '110101002');
INSERT INTO `region` VALUES ('110101002006', '汪芝麻社区居委会', '110101002');
INSERT INTO `region` VALUES ('110101002008', '景山东街社区居委会', '110101002');
INSERT INTO `region` VALUES ('110101002009', '皇城根北街社区居委会', '110101002');
INSERT INTO `region` VALUES ('110101003', '交道口街道', '110101');
INSERT INTO `region` VALUES ('110101003001', '交东社区居委会', '110101003');
INSERT INTO `region` VALUES ('110101003002', '福祥社区居委会', '110101003');
INSERT INTO `region` VALUES ('110101003003', '大兴社区居委会', '110101003');
INSERT INTO `region` VALUES ('110101003005', '府学社区居委会', '110101003');
INSERT INTO `region` VALUES ('110101003007', '鼓楼苑社区居委会', '110101003');
INSERT INTO `region` VALUES ('110101003008', '菊儿社区居委会', '110101003');
INSERT INTO `region` VALUES ('110101003009', '南锣鼓巷社区居委会', '110101003');
INSERT INTO `region` VALUES ('110101004', '安定门街道', '110101');

添加代码

代码结构:
main.go

package mainimport ("beego_demo/lib/mysql"_ "beego_demo/routers""github.com/astaxie/beego"
)func main() {// 初始化MySQLmysql.Init()beego.Run()
}

app.conf

appname = beego_demo
httpport = 8089
runmode = dev
## 用于将json请求参数转变成对象
copyrequestbody = true

mysql.go

package mysqlimport ("beego_demo/models""github.com/astaxie/beego/orm"_ "github.com/go-sql-driver/mysql"
)func Init() {orm.RegisterDriver("mysql", orm.DRMySQL)orm.RegisterDataBase("default", "mysql", "root:root@tcp(localhost:3306)/test?charset=utf8")orm.SetMaxIdleConns("default", 10)orm.SetMaxOpenConns("default", 100)//  注册modelorm.RegisterModel(new(models.Region))// debug环境下会打印sql语句orm.Debug = true
}func Create(param interface{}) (int64, error) {return orm.NewOrm().Insert(param)
}func Read(md interface{}, cols ...string) error {return orm.NewOrm().Read(md, cols...)
}

region.go

package modelsimport ("github.com/astaxie/beego/orm"_ "github.com/go-sql-driver/mysql"
)const REGION_TABLE_NAME string = "region"type Region struct {Code       string `orm:"pk;column(code)" json:"code"`Name       string `json:"name"`ParentCode string `json:"parentCode"`
}func (r *Region) TableName() string {return REGION_TABLE_NAME
}func ListRegion(parentCode string) (data []Region, err error) {qt := orm.NewOrm().QueryTable(REGION_TABLE_NAME)// 根据参数拼接条件if parentCode != "" {qt = qt.Filter("parent_code", parentCode)}_, err = qt.All(&data)return
}

Controller
index.go

package controllersimport ("beego_demo/lib/mysql""beego_demo/models""github.com/astaxie/beego"
)type IndexController struct {beego.Controller
}// 定义响应结构
type IndexResp struct {Id     stringName   stringAge    int8Region models.Region
}func (c *IndexController) Index() {// 定义查询条件region := models.Region{Name: "测试"}// 按照name检索, 将region指针传入进去, 方法内会将查询结果赋值到该结构体mysql.Read(&region, "name")// 返回json结构数据c.Data["json"] = &IndexResp{"ID_0001", "GuanDS", 18, region}c.ServeJSON()
}

region.go(controller包下)

package controllersimport ("beego_demo/lib/mysql""beego_demo/models""encoding/json""github.com/astaxie/beego"
)type RegionController struct {beego.Controller
}func (c *RegionController) List() {// 定义返回结果 数组var listRegion []models.Region// 获取请求参数(parentCode) http://localhost:8089/region?parentCode=1101listRegion, _ = models.ListRegion(c.GetString("parentCode"))c.Data["json"] = &listRegionc.ServeJSON()
}func (c *RegionController) Create() {// 定义入参对象var region models.Region// 将json参数转变成对象_ = json.Unmarshal(c.Ctx.Input.RequestBody, &region)// 插入到数据表createRegion, err := mysql.Create(&region)println("执行结果: %d", createRegion)result := make(map[string]string)if err != nil {result["code"] = "1"result["message"] = "FAILED"} else {result["code"] = "0"result["message"] = "SUCCESS"}c.Data["json"] = resultc.ServeJSON()
}

router.go

package routersimport ("beego_demo/controllers""github.com/astaxie/beego"
)func init() {beego.Router("/", &controllers.MainController{})// 解析请求/index, GET 路由到IndexController.Index()beego.Router("/index", &controllers.IndexController{}, "get:Index")// 解析请求/region/list, GET 路由到RegionController.List()beego.Router("/region/list", &controllers.RegionController{}, "get:List")// 解析请求/region/create, POST 路由到RegionController.Create()beego.Router("/region/create", &controllers.RegionController{}, "post:Create")
}

测试

![在这里插入图片描述](https://img-blog.csdnimg.cn/186259e80e284058b847b9a972f74c64.png

Beego入门简单构建, 连接MySQL实现增查操作相关推荐

  1. Java连接Mysql数据库增删改查实现

    Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...

  2. Node.js笔记-node.js连接MySQL与增删改查

    最近在看一个开源项目,项目用的是node.js,在此学习下他的连接mysql与增删改查. 安卓mysql包: npm install mysql 程序运行截图如下: D:\node\content\n ...

  3. Centos6.8下安装Mysql5.6.14,连接mysql及增删改查,通过Mysql-Front远程连接(开启端口、允许远程连接)

    Centos6.8下安装Mysql5.6.14,连接mysql及增删改查,并能通过Mysql-Front远程连接(开启端口.允许远程连接) 概述: 通过源代码安装高版本的5.6.14. 正文: 一:卸 ...

  4. Node.js 连接 MySQL 并进行数据库操作 –node.js 开发指南

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包 通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来 ...

  5. mysql 编辑数据库内容_详解mysql数据库增删改操作

    插入数据 insert into 表名(列名1,列名2,列名3) values(值1,值2,值3); insert into user(user_id,name,age) values(1,'nice ...

  6. Nodejs连接mysql的增、删、改、查操作

    一,创建数据库 Source Database : my_news_test SET FOREIGN_KEY_CHECKS=0;-- ---------------------------- -- T ...

  7. c 连接mysql怎么增删改_C++ API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

  8. 西门子低代码平台通过Database Connector 连接Mysql 实现增删改查

    简介: 本文介绍了西门子低代码平台如何通过Database Connector 连接到外部数据库并实现增删改查操作.连接外围数据库是西门子低代码平台的内置功能,不同数据库的连接方式大同小异,本文以My ...

  9. wps连接mysql数据库增删改查_Python操作MySQL数据库实例详解【安装、连接、增删改查等】...

    本文实例讲述了python操作MySQL数据库.分享给大家供大家参考,具体如下: 1.安装 通过Python连接MySQL数据库有很多库,这里使用官方推荐的MySQL Connector/Python ...

最新文章

  1. 美国北卡教堂山分校Jeff Dangl组植物微生物组博士后招聘(植物微生物互作领域第一高引学者)...
  2. 如何为jframe设置于右侧滑轮_如何为电脑设置屏保密码?
  3. javascript内置顶层函数
  4. 领英Linkedin信息搜集工具InSpy
  5. 汇编语言--call 指令
  6. 直播 | ACL 2021论文解读:基于对抗学习的事件抽取预训练模型
  7. SpringMVC+RestFul详细示例实战教程
  8. 关于DRAM、SRAM、cache、cpu、寄存器、主存之间的联系与区别
  9. PHP 实现归并排序算法
  10. Android笔记-使用okhttp3库发送http请求
  11. 二分实现:查找数组中的峰值元素
  12. HDU 1262 寻找素数对 模拟题
  13. python异步教程_Python开发异步任务Celery的使用教程!
  14. STM32标准库(固件库)分析
  15. Rog14 Win10系统迁移新的三星固态硬盘
  16. opencv手动实现运动目标检测
  17. html全局背景代码,html背景代码
  18. Python 黑板客爬虫闯关的第一关
  19. 使用Mono Cecil对MSIL进行注入
  20. 2014巴西世界杯 不再有观众!

热门文章

  1. [OfficeExcel] OfficeExcel2010 第16讲 文本处理函数
  2. 咕噜:区块链的属性不仅是金融,还有社区
  3. 龙格现象 matlab,龙格现象的matlab实现
  4. win10系统安装与双系统ubuntu深度学习环境配置
  5. Demo( the fourth week)
  6. 当我参加培训的时候,我在学什么?
  7. Neo4j图形数据库的一些基本Cypher查询指令总结
  8. 【raid5数据恢复】服务器RAID5中一块硬盘亮黄灯被踢出导致raid崩溃的数据恢复
  9. 区块链在游戏产业掀起狂潮
  10. flume系列之:处理flume 678M损毁文件