新手第二章 Go引入GORM插件 实现简易的CURL(全程干货无废话)
人生是不能回头的 每走一步都会有不同的结果 一切都是唯一的 包括遗憾
首先引入必要的资源包
所有的包在pkg.go.dev/ 都可以找到 选择合适的版本
如 go get -u gorm.io/driver/mysql@1.5.3
功能齐全的 ORM (虚拟对象数据库)
go get -u gorm.io/gorm
GORM针对 MySQL 驱动程序
go get -u gorm.io/driver/mysql
一个方便Go语言应用程序处理配置信息的库
go get -u github.com/spf13
轻量级的Go语言Web框 简称 Gin
go get -u go get -u github.com/gin-gonic/gin
初始化文件夹
gin框架官方文档 gin-gonic.com/zh-cn/docs/…
在 main.go文件中
package main
import "github.com/gin-gonic/gin"
func main() {
//gin.Default()是gin框架自带的默认路由
r := gin.Default()
//r.GET 监听默认 8080 端口后访问 url地址/ping
//c *gin.Context 参数包含了大量的关于请求和响应的信息
r.GET("/ping", func(c *gin.Context) {
//数据集转json
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
r.Run("8090") //通过这种方式指定端口
}
其中JSON的返回方式解释
// 一、返回JSON
c.String(200,"成功") // 返回字符串
// 二、 方式一,直接返回map格式
var m = map[string]interface{}{
"name": "hcl",
"age": 20,
}
c.JSON(200, m)
// 方式二,借助gin.H, gin.H 是 map[string]interface{}的缩写
c.JSON(200, gin.H{"name": "hcl", "age": 20})
现在开始使用 GORM 编写未封装的 CURD
在models文件夹中新增UserBasic Model
package models
import (
"fmt"
"ginchat/utils"
"gorm.io/gorm"
)
type UserBasic struct {
gorm.Model
Identity string
Name string
Password string
Phone string
Email string
ClientIp string
ClientPort string
Status uint8
LoginTime uint64
HeartbeatTime uint64
LoginOutTime uint64
IsLoginOut bool
DeviceInfo string
}
func (table *UserBasic) TableName() string {
return "user_basic"
}
在 test 文件夹中新建test_gorm.go文件
package main
import (
"fmt"
"ginchat/models"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func main() {
//连接 mysql地址 远程或本地皆可
db, err := gorm.Open(mysql.Open("user:pwd@tcp(ip:port)/databaseName?charset=utf8mb4&parseTime=True&Local"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 初始化表结构
db.AutoMigrate(&models.UserBasic{})
// 初始化多张表
//db.AutoMigrate(&User{}, &Product{}, &Order{})
//对数据表设置
//db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{})
user := &models.UserBasic{}
user.Name = "张三"
db.Create(user)
// Read 根据主键查询一条数据
fmt.Println(db.First(user, 1)) // 根据整型主键查找
// Update - 修改刚新增的数据
db.Model(user).Update("PassWord", "12342") // 仅更新非零值字段
// Delete - 根据主键删除
db.Delete(user, 3)
}
配置好相关参数后 运行test_gorm.go文件
也可以使用命令执行 go build ginchat/test_gorm.go
观察数据库数据动态 是否是在预期内
有问题解决问题 没问题就结束本章
解决不了 就在评论去留言 一起解决
转载自:https://juejin.cn/post/7388395268851597349