Gin框架简易搭建(3)--Grom与数据库

写在前面

项目地址

个人认为GORM 指南这个网站是相比较之下最为清晰的框架介绍

但是它在环境搭建阶段对于初学者而言不是很友好,尤其是使用mysql指令稍有不同,以及更新的方法和依赖问题都是很让人头疼的,而且这些报错并非逻辑上的,往往是网络端口,数据库创建等没有接触过的内容,因此我建议可以在学习使用增删改查的操作时看框架教程,配置环境使用以下的学习步骤:

  1. 首先,下载mysql,以及三选一mysqlshell,navicat,dbreaver(个人感觉第二个的破解版手感是最丝滑的),对于初学一个东西,我认为可视化是最好的帮助和激励

  2. 在创建和连接数据库的时候,搜一下“Navicat使用快速入门教程”,对于数据库连接不成功的情况,往往是因为没有启动服务,这个在任务管理器->服务->mysql90(或80),找到之后右键手动打开即可,简单学一下建表(增删改查都看一下也可以,大概十几分钟就搞定)

  3. 之后,使用下面两个命令在项目中搭建gorm环境

    go get -u gorm.io/gorm
    go get -u gorm.io/driver/mysql
    
  4. 然后,按照下面的文件结构去添加文件夹和文件即可,由于版本的原因,我直接上传所有新增文件,并且以注释的形式去解释每部分的作用

    在这里插入图片描述

文件及解析

dao.go

package dao

import (
	"Ranking/config"
	"Ranking/pkg/logger"
	"gorm.io/driver/mysql" // 引入 MySQL 驱动
	"gorm.io/gorm"         // 引入 Gorm
	"time"
)

var (
	Db  *gorm.DB
	err error
)

func init() {
   
   
	// 使用 gorm.Open 打开 MySQL 数据库连接
	Db, err = gorm.Open(mysql.Open(config.Mysqldb), &gorm.Config{
   
   })
	if err != nil {
   
   
		logger.Error(map[string]interface{
   
   }{
   
   "mysql connect error": err.Error()})
		return // 连接失败,提前返回
	}

	// 获取底层的 sql.DB
	sqlDB, err := Db.DB()
	if err != nil {
   
   
		logger.Error(map[string]interface{
   
   }{
   
   "get DB instance error": err.Error()})
		return // 获取 DB 实例失败,提前返回
	}

	// 配置连接池参数
	sqlDB.SetMaxIdleConns(10)           // 设置最大空闲连接数
	sqlDB.SetMaxOpenConns(100)          // 设置最大打开连接数
	sqlDB.SetConnMaxLifetime(time.Hour) // 设置连接的最大可重用时长
}

models包user.go

package models

import "Ranking/dao"

type User struct {
   
   
	Id       int
	Username string
}

func (User) TableName() string {
   
   
	return "user"
}

// GetUsersTest 根据用户ID获取用户信息
func GetUsersTest(id int) (User, error) {
   
   
	var user User
	//where在 SQL 中生成一个 WHERE 子句,以便查找满足条件的记录,?是占位符
	//first方法用于查找单个记录,如果找到,则返回该记录,否则返回错误
	err := dao.Db.Where("id =?", id).First(&user).Error
	return user, err
}

controllers->user.go重写一个方法

func (u UserController) GetUserInfo(c *gin.Context) {
   
   
	idStr := c.Param("id")
	name := c.Param("name")

	id, _ := strconv.Atoi(idStr)
	user, _ := models.GetUsersTes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值