Golang:查询数据并分页

该博客展示了如何在Gin框架中实现基于HTTP请求参数的分页查询功能。通过获取URL查询参数`page`和`page_size`,对数据库查询进行限制,实现了动态分页。核心代码演示了如何根据提供的搜索关键字过滤数据,并限制返回的数据量。
摘要由CSDN通过智能技术生成

先看一下效果,就是根据查询的结果进行分页嘛,要可以设置页码和页码数据的条目

请求:

http://localhost:8089/nufe/search?search=301624301&page=3&page_size=4

核心代码


func (con SearchController) SearchIndex(c *gin.Context) {

	QuestionBank := make([]models.QuestionBank, 0)
	Db := models.DB

	page, _ := strconv.Atoi(c.Query("page"))
	pageSize, _ := strconv.Atoi(c.Query("page_size"))

	if search, isExist := c.GetQuery("search"); isExist == true {
		Db = Db.Where("nc_subject like ?", "%"+search+"%")
	}

	if page > 0 && pageSize > 0 {
		Db = Db.Limit(pageSize).Offset((page - 1) * pageSize)
	}
	if err := Db.Find(&QuestionBank).Error; err != nil {
		fmt.Println(err.Error())
	}
	c.JSON(http.StatusOK, gin.H{
		"code":     0,
		"page":     page,
		"pageSize": pageSize,
		"data":     QuestionBank,
	})

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wenlong Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值