ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

go 语言中 gin 框架中gorm 打印sql执行语句怎么打印

2023-12-19 21:07:11  阅读:45  来源: 互联网

标签:


在Gin框架中使用GORM库打印SQL执行语句,可以通过设置GORM的日志模式来实现。以下是示例代码:

package main

import (
    "log"

    "github.com/gin-gonic/gin"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
    "gorm.io/gorm/logger"
)

type RequestLog struct {
    ID        uint   `gorm:"primarykey"`
    CreatedAt int64  `gorm:"column:request_log_create_time"`
    UpdatedAt int64  `gorm:"column:request_log_update_time"`
}

func main() {
    dsn := "username:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local" // 根据实际情况修改
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
        Logger: logger.Default.LogMode(logger.Info), // 设置日志级别为Info,即打印SQL语句
    })
    if err != nil {
        log.Fatal(err)
    }

    r := gin.Default()

    r.GET("/request_logs", func(c *gin.Context) {
        var list []RequestLog
        startTime := "2022-01-01"
        endTime := "2022-01-31"

        sql := db.Table("tableName").Model(&list)
        sql = sql.Where("request_log_create_time >= ? and request_log_update_time < ?", startTime, endTime)

        if err := sql.Find(&list).Error; err != nil {
            c.JSON(500, gin.H{
                "error": "查询失败",
            })
            return
        }

        c.JSON(200, list)
    })

    r.Run(":8080")
}

Go

在示例代码中,我们首先使用gorm.Open()打开数据库连接,并设置日志级别为logger.Info,以便打印SQL语句。

然后,在路由处理函数中,我们创建一个sql变量并指定查询条件。注意,您需要将tableName替换为实际的表名。

最后,通过sql.Find(&list)执行查询操作,并根据需要处理错误和返回结果。

执行示例代码后,在控制台或日志文件中,您将看到打印的SQL语句。您可以根据实际需求自定义日志输出位置、格式等。

标签:
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有