欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang通過mysql語句實現(xiàn)分頁查詢

 更新時間:2022年03月25日 10:04:10   作者:峰啊瘋了  
這篇文章主要介紹了golang通過mysql語句實現(xiàn)分頁查詢,文章內(nèi)容介紹詳細,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學習有所幫助

1.前端接口調(diào)用

#yyds干貨盤點#golang實現(xiàn)通過mysql語句實現(xiàn)分頁查詢_數(shù)據(jù)庫分頁

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.解析參數(shù)

//查詢某個用戶下所有的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)
}

#yyds干貨盤點#golang實現(xiàn)通過mysql語句實現(xiàn)分頁查詢_分頁_02

4.service實現(xiàn)

//查詢一個用戶所有的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實現(xiàn)

//查詢用戶下的所以信息
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數(shù)目:

#yyds干貨盤點#golang實現(xiàn)通過mysql語句實現(xiàn)分頁查詢_數(shù)據(jù)庫分頁_03

查詢語句加上參數(shù)。控制查到的頁數(shù)。

#yyds干貨盤點#golang實現(xiàn)通過mysql語句實現(xiàn)分頁查詢_數(shù)據(jù)庫分頁_04

返回的是總數(shù)量跟當前查詢頁。

特殊情況用不到數(shù)據(jù)庫分頁的,就需要用到內(nèi)存分頁了,下期小編給大家講解內(nèi)存分頁。

到此這篇關(guān)于golang通過mysql語句實現(xiàn)分頁查詢的文章就介紹到這了,更多相關(guān)mysql實現(xiàn)分頁查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言算法之尋找數(shù)組第二大元素的方法

    Go語言算法之尋找數(shù)組第二大元素的方法

    這篇文章主要介紹了Go語言算法之尋找數(shù)組第二大元素的方法,以實例形式分析了不排序、只循環(huán)一次來實現(xiàn)尋找數(shù)組第二大元素的技巧,是比較典型的算法,需要的朋友可以參考下
    2015-02-02
  • golang?db事務的統(tǒng)一封裝的實現(xiàn)

    golang?db事務的統(tǒng)一封裝的實現(xiàn)

    這篇文章主要介紹了golang db事務的統(tǒng)一封裝的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Go語言定時任務的實現(xiàn)示例

    Go語言定時任務的實現(xiàn)示例

    本文主要介紹了Go語言定時任務的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Go語言字典(map)用法實例分析【創(chuàng)建,填充,遍歷,查找,修改,刪除】

    Go語言字典(map)用法實例分析【創(chuàng)建,填充,遍歷,查找,修改,刪除】

    這篇文章主要介紹了Go語言字典(map)用法,結(jié)合實例形式較為詳細的分析了Go語言字典的創(chuàng)建、填充、遍歷、查找、修改、刪除等操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-02-02
  • 在Go語言項目中使用Zap日志庫的操作過程

    在Go語言項目中使用Zap日志庫的操作過程

    本文將先介紹Go語言原生的日志庫的使用,然后詳細介紹非常流行的Uber開源的zap日志庫,同時會介紹如何搭配·Lumberjack·實現(xiàn)日志的切割和歸檔,對Go使用Zap日志庫相關(guān)知識感興趣的朋友一起看看吧
    2024-03-03
  • GPT回答:go語言和C語言切片對比

    GPT回答:go語言和C語言切片對比

    這篇文章主要為大家介紹了GPT回答:go語言和C語言切片對比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 關(guān)于golang 字符串 int uint int64 uint64 互轉(zhuǎn)問題

    關(guān)于golang 字符串 int uint int64 uint64&

    這篇文章主要介紹了golang 字符串 int uint int64 uint64 互轉(zhuǎn),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • 深入講解Go語言中函數(shù)new與make的使用和區(qū)別

    深入講解Go語言中函數(shù)new與make的使用和區(qū)別

    大家都知道Go語言中的函數(shù)new與函數(shù)make一直是新手比較容易混淆的東西,看著相似,但其實不同,不過解釋兩者之間的不同也非常容易,下面這篇文章主要給大家介紹了關(guān)于Go語言中函數(shù)new與make區(qū)別的相關(guān)資料,需要的朋友可以參考下。
    2017-10-10
  • Go庫text與template包使用示例詳解

    Go庫text與template包使用示例詳解

    這篇文章主要為大家介紹了Go庫text與template包使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Go語言學習教程之聲明語法(譯)

    Go語言學習教程之聲明語法(譯)

    Golang 就是類C的語法,下面這篇文章主要給大家介紹了關(guān)于Go語言學習教程之聲明語法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-11-11

最新評論