go语言mysql框架_超级详细:Go语言框架Gin和Gorm实现一个完整的待办事项微服务...

前言

本文通过一步一步的设计,最终实现一个完善的todo应用。

我们使用GO框架Gin用户路由控制和返回数据。使用Gorm用于操作数据库。

读者可根据本教程操作,最终实现列出的各项功能。

技术清单

本文中所涉及的技术内容主要有以下几种:Gin:轻量高效性能爆棚的WEB框架

Gorm:一个关系型数据库的ORM工具包,避免直接SQL语句操作

MySQL:数据库

curl工具,用于API接口数据测试

另外,使用的GO版本是go version go1.13.5 windows/amd64

对于第2,3条内容,可使用以下指令安装

对于工具curl,我们使用的是 git bash内自带的指令。如果是linux下用户,开箱即用。

创建数据库

本文使用MySQL数据库装载数据。本节我们仅需创建一个空的数据库,就可以了。表结构在下一节使用gorm迁移功能创建。

使用Navicat工具新建界面如下图。

需要特别留意数据库字符集编码使用 utf8mb4,这个是MySQL真正的utf8,用于中文字符支持。

创建表模型

gorm中的Automigrate()操作,用于刷新数据库中的表,使其保持最新。即让数据库之前存储的记录的表字段和程序中最新使用的表字段保持一致(只增不减)。

我们先建一个todos表模型。

type (

todoModel struct {

gorm.Model

Title string `json:"title"`

Completed int `json:"completed`

}

fmtTodo struct {

ID uint `json:"id"`

Title string `json:"title"`

Completed bool `json:"completed"`

}

)

其中 todoModel用于数据库todos表。我们默认继承使用了gorm.Model的字段,主要包括以下几个:

// gorm.Model 定义

type Model struct {

ID uint `gorm:"primary_key"`

CreatedAt time.Time

UpdatedAt time.Time

DeletedAt *time.Time

}

数据库表会自动生成上述4个字段,并追加 title,completed两个字段。模型名与表名不一致,我们手动指定表名:

// 指定表名

func (todoModel) TableName() string {

return "todos"

}

然后在代码初始化过程中执行迁移。

var db *gorm.DB

// 初始化

func init() {

var err error

var constr string

constr = fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", "root", "111213", "localhost", 3306, "05-gin-gorm-todo")

db, err = gorm.Open("mysql", constr)

if err != nil {

panic("数据库连接失败")

}

db.AutoMigrate(&todoModel{})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值