golang透過mysql語句實現分頁查詢
1.前端介面呼叫
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) }
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數目:
查詢語句加上引數。控制查到的頁數。
返回的是總數量跟當前查詢頁。
特殊情況用不到資料庫分頁的,就需要用到記憶體分頁了.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2887441/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- golang通過mysql語句實現分頁查詢GolangMySql
- mysql查詢語句MySql
- Mysql之查詢語句MySql
- mysql查詢語句集MySql
- indexdb實現分頁查詢Index
- MySQL 查詢語句執行過程淺析MySql
- mysql查詢語句5:連線查詢MySql
- oracle語法相容--如何透過with recursive語法來實現oracle的分層查詢Oracle
- mysql高階查詢語句MySql
- Golang實現二分查詢法Golang
- MySQL的分頁查詢MySql
- MySQL的簡單查詢語句MySql
- mysql dba常用的查詢語句MySql
- MySQL內連線查詢語句MySql
- MySQL分頁查詢優化MySql優化
- SSM框架實現分頁查詢例子SSM框架
- c# winform 實現分頁查詢C#ORM
- mysql查詢效率慢的SQL語句MySql
- 請教一個mysql查詢語句!!MySql
- MySQL——優化巢狀查詢和分頁查詢MySql優化巢狀
- 如何優雅地實現分頁查詢
- MySQL查詢語句過程和EXPLAIN語句的基本概念及其最佳化MySqlAI
- 在mysql查詢效率慢的SQL語句MySql
- Mysql 獲取表設計查詢語句MySql
- MySQL語句第二高的薪水查詢MySql
- MySQL系列之一條SQL查詢語句的執行過程MySql
- MySQL 查詢常用操作(0) —— 查詢語句的執行順序MySql
- SSH整合實現分頁查詢(兩種方式)
- MySQL分頁查詢offset過大,Sql最佳化經驗MySql
- MySQL分優化之超大頁查詢MySql優化
- (MySQL學習筆記)分頁查詢MySql筆記
- SpringMVC+Spring Data JPA +Bootstrap 分頁實現和模糊查詢分頁SpringMVCboot
- mysql查詢語句陣列下標擷取MySql陣列
- MySQL資料庫:7、SQL常用查詢語句MySql資料庫
- mysql常見的查詢語句的應用MySql
- GaussDB SQL查詢語句執行過程解析SQL
- sql查詢語句流程SQL
- SQL mother查詢語句SQL