Gin GORM MySQL数据库操作教程(一)

Gin 的 GORM 数据库操作,真的是前后端 Go 项目里比较常用的组合了。用结构体操作数据表,写起来顺手,读起来也直观。你只需要写好模型,定义好路由,剩下 GORM 就帮你搞定 CRUD 操作,省了不少事儿。

Gin 框架的GORM 整合,用起来蛮丝滑的。比如连接 MySQL,只需要准备一个dsn字符串,GORM 就能搞定数据库连接。

像这样:

dsn := "user:password@/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

定义模型也直观,一个struct就搞定表结构。GORM 还自带常用字段,比如IDCreatedAt,你不用手动写,挺省心的。

比如这样一个用户表:

type User struct {
  gorm.Model
  Name string `gorm:"column:name"`
  Age  int    `gorm:"column:age"`
}

增删查改也简单,比如插入数据:

newUser := User{Name: "John Doe", Age: 30}
db.Create(&newUser)

项目结构建议清晰点,controllers管逻辑,routers配路由,middlewares做权限、日志这些事儿。像这样写user_controller.go

func CreateUser(c *gin.Context) {
  var user models.User
  if err := c.ShouldBindJSON(&user); err != nil {
    c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
    return
  }
  if err := db.Create(&user).Error; err != nil {
    c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
    return
  }
  c.JSON(http.StatusCreated, user)
}

如果你是 Go 新手,刚接触 Gin 和 GORM,这套搭配真的蛮合适。逻辑清晰,代码也挺好维护。

哦对了,如果你不想用默认的ID作为主键,可以自定义字段,加上gorm:"primaryKey"就行了。

如果你想了解更多其他语言的语法,像PerlC 语言Swift等,也可以顺带看看。

用 Gin 配 GORM,开发效率真不低。如果你打算搞 Go 语言 Web 项目,这篇内容可以直接抄起来试一遍,感受一下~

zip 文件大小:9.44MB