1.软文推荐

2.软文推荐

3.软文推荐

本篇文章重点为大家讲解一下golang通过mysql语句实现分页查询具体方法,有需要的小伙伴可以参考一下。


1.前端接口调用
golang通过mysql语句实现分页查询golang通过mysql语句实现分页查询
2.register访问入口
//查询一个用户下所有的subnet
ws.Route(ws.GET("/subnets").
To(sc.ListSubnet).
Doc("List subnets authorized to the login user.").
Param(ws.QueryParameter(query.ParameterPage, "page").Required(false).DataFormat("page=%d").DefaultValue("page=1")).
Param(ws.QueryParameter(query.ParameterLimit, "limit").Required(false)).
Returns(http.StatusOK, api.StatusOK, api.ListResult{}))
3.解析参数
//查询某个用户下所有的subnet信息
func (v *SubController) ListSubnet(request *restful.Request, response *restful.Response) {
username := request.Attribute(filters.UserName).(string)
 
subnetService := &service.SubnetService{}
query := query.ParseQueryParameter(request)
result, err := subnetService.ListSubnet(query, v.Db, username)
if err != nil {
api.HandleError(response, request, err)
return
}
response.WriteEntity(result)
}
golang通过mysql语句实现分页查询golang通过mysql语句实现分页查询
4.service实现
//查询一个用户所有的subnet信息
func (ss *SubnetService) ListSubnet(query *query.Query, db *sql.DB, userName string) (*api.ListResult, error) {
sm := mapper.NewSubnetMapper(db)
sb, err := sm.SearchAllByUserName(query, userName)
return sb, err
}
5.mapper实现
//查询用户下的所以信息
func (s *SubnetMapper) SearchAllByUserName(query *query.Query, userName string) (*api.ListResult, error) {
 
totalRow, err := s.Db.Query("SELECT COUNT(*) from t_subnet ,t_vpc where t_vpc.id = t_subnet.vpcid and username = ?", userName)
if err != nil {
klog.Error("query orders count error", err)
return nil, err
}
total := 0
for totalRow.Next() {
err := totalRow.Scan(
&total,
)
if err != nil {
klog.Error("query orders count error", err)
continue
}
}
totalRow.Close()
 
rows, err := s.Db.Query(SearchAllByUserNameSql, userName, query.Pagination.Limit, query.Pagination.Offset)
defer func() {
if rows != nil {
rows.Close()
}
}()
if err != nil {
klog.Error("query subnet error", err)
return nil, err
}
items := make([]interface{}, 0)
for rows.Next() {
ss := new(vpc.SubnetItem)
err = rows.Scan(&ss.VpcName, &ss.VpcNetwork, &ss.SubnetName, &ss.SubnetNetwork, &ss.CreateTime)
items = append(items, *ss)
}
return &api.ListResult{
TotalItems: total,
Items: items,
}, nil
}

可以看到第一步查出了所有count数目:

查询语句加上参数。控制查到的页数。


返回的是总数量跟当前查询页。

特殊情况用不到数据库分页的,就需要用到内存分页了.

本文来源:www.lxlinux.net/9857.html,若引用不当,请联系修改。

相关文章 8

1

Friendhosting:新增美国新泽西州锡考克斯VPS,目前可选11个数据中心,7折促销,不限流量 2分钟前

Friendhosting近日新增了美国新泽西州锡考克斯数据中心,新品上线,7折促销中,目前Friendhosting已经有11个数据中心可选,所有VPS不限流量,此...

2

什么是单页面网站?(什么叫单页面) 3分钟前

首先,先说明一下,单页面也就是一个简单布局的独立的静态网页,有着独立的布局和版块,我们称之为单页面。 比如淘宝的活动推广页面...

3

Linux下安装反病毒工具包Clam AntiVirus 6分钟前

Clam AntiVirus 是一款 UNIX 下开源的 (GPL) 反病毒工具包,专为邮件网关上的电子邮件扫描而设计。该工具包提供了包含灵活且可伸缩的监控程序...

4

影响网站打开响应速度的有哪些?(影响网站打开响应的因素) 7分钟前

1、网站代码 网站前期在搭建的时候尽量的把网站的代码写得最为的简单,很多新手在写网站的时候,由于自身熟练度的问题,在开发语言的...

5

阿帕云引擎idc管理系统搭建:中小企业如何搭建idc业务系统? 8分钟前

阿帕云引擎idc管理系统怎么样? 中小企业如何搭建idc业务系统?中小企业可以试试apayun阿帕云引擎系统,它是国内专业专业的IDC管理系统。...

6

长尾关键词什么意思?(长尾关键词的关键词汇) 11分钟前

长尾关键词bai是指与目标关键词相关的任何有搜索量、有人关注的关键词。 长尾关键词的特征是比较长,往往是2-3个词组成,甚至是短语,...

7

PQS:国内VDS,可选广东联通/广东CN2,动态IP,120Mbps-300Mbps带宽不限流量 13分钟前

PQS,台湾商家,成立于2015年,专注销售VPS和实体机,数据中心有台湾、香港、大陆、日本、美国等,目前有台北CN2、日本CN2、香港BGP、台湾...

8

秦皇岛云服务器_秦皇岛云主机/易探云免备案vps主机租用(秦皇岛云合网络科技有限公司 14分钟前

易探云服务器( 秦皇岛云主机 )真正的云计算架构云服务器,配备纯SSD架构打造的高性能存储,旨在为秦皇岛企业和个人用户提供优质、高效...