一、引言

以前数据量不多,一般直接在前端分页;后来随着大数据时代的到来,同时考虑前端的性能问题,后台分页渐渐提上议程。。搞起

二、步骤

1、SQL层面

归根到底都是sql语句问题,后台service主要是处理了中间的逻辑问题。

这里要注意的是

  • 可以全部查出来,再在BLL层筛选要的信息,这样做sql语句可以不用变,但是服务器压力比较大,有点2;
  • 最好直接用sql查询出想要的结果,然后在DAO层包装成对象,BLL层最好不要进行过多的逻辑处理;

2、DAO与BLL层面

这个层面解决的问题主要是参数传递问题,比如当前页数,总页数,每页数据条数,总记录数等==这个就看个人接口需求了。

其他的方面就是包装数据,返回数据,与正常的使用并没有区别,so easy==

三、代码

1、分页model类Page

 public class Page<T>{public int pageCode { get; set; }public int pageSize { get; set; }public int totalPage { get; set; }public int totolRecord { get; set; }public List<T> listBean { get; set; }public Page(){listBean = new List<T>();}}

2、传入想要的页数+数据库查询,以mysql为例

 public object searchUnit(int pageCode){Page<UnitCustom> page = new Page<UnitCustom>();page.pageCode = pageCode;page.pageSize = 10;string sqlTotal = "SELECT COUNT(*) FROM v_unit ";page.totolRecord= SQLHelper.ExcuteScalarSQL(sqlTotal);if ((page.totolRecord % page.pageSize) == 0){page.totalPage = page.totolRecord / page.pageSize;}else{page.totalPage = page.totolRecord / page.pageSize+1;}string sql = "SELECT * FROM v_unit LIMIT "+(page.pageCode-1)*page.pageSize+","+page.pageSize;DataTable dt = SQLHelper.GetTable(sql);for (int i = 0; i < dt.Rows.Count; i++){UnitCustom unitCustom = new UnitCustom();unitCustom.F_CODE = dt.Rows[i]["F_CODE"].ToString();unitCustom.F_BUILD_CODE = dt.Rows[i]["F_BUILD_CODE"].ToString();unitCustom.F_POSITION = dt.Rows[i]["F_POSITION"].ToString();unitCustom.F_NAME = dt.Rows[i]["F_NAME"].ToString();unitCustom.F_POSITION_DES = dt.Rows[i]["F_POSITION_DES"].ToString();unitCustom.F_POSITION_REMARK = dt.Rows[i]["F_POSITION_REMARK"].ToString();unitCustom.F_TYPE = dt.Rows[i]["F_TYPE"].ToString();unitCustom.F_MAP_CODE = dt.Rows[i]["F_MAP_CODE"].ToString();unitCustom.F_BUILD_NAME = dt.Rows[i]["F_BUILD_NAME"].ToString();page.listBean.Add(unitCustom);}return page;}

这里使用的limit是mysql的方言,如果用到其他数据库请另行查询,挺简单的。剩下工作就交给前端的小朋友了

四、总结

  • 后端分页优点
  • 分页过程分析
  • 分页具体代码实现

SQL——后台分页(C#,mysql)相关推荐

  1. mysql在建站起什么作用_数据库操作对比:Sql Server与MYSQL相比有哪些建站优势?...

    最近一直在做博客网站,从定位主题到程序和数据库的选择,确实废了不少心思,经过细致的思考,最终将主题定位为读书方面,还有文学和学习笔记,但是对于程序和数据库问题,我一直就比较费心,因为个人是个技术小白, ...

  2. mysql用户管理,常用sql语句,mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...

  3. 使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案

    使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案 参考文章: (1)使用命令导入sql文件到mysql数据库时报Failed to open file错 ...

  4. golang mysql 错误 sql: unknown driver “mysql“ (forgotten import?) 解决方法

    golang中使用gorm连接mysql的时候会报错:sql: unknown driver "mysql" (forgotten import?) 需要在连接数据库的文件中引入  ...

  5. mybatisplus执行sql语句_[MySQL]sql语句的执行流程

    此篇极客时间专栏<MySQL实战45讲>笔记,文中部分图文来自该专栏. MySQL的执行流程示意图: 大体来说,MySQL可以分为Server层和存储引擎层两部分. Server层包括连接 ...

  6. sql server转mysql工具下载_SQL Server转换为MySQL工具推荐(Mss2sql)

    SQL Server转换为MySQL工具,用了一下 感觉蛮不错的. 分享上来,同时也以便记录下来以后自用. 工具名称:Mss2sql 来个操作流程: 1.首先下载工具 用户名与密码都是www.linu ...

  7. 一条SQL语句在MySQL中是如何执行的

    来源:http://t.cn/E6U9Z9T 概览 本篇文章会分析下一个sql语句在mysql中的执行流程,包括sql的查询在mysql内部会怎么流转,sql语句的更新是怎么完成的. 一.mysql架 ...

  8. SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据

    SQL基础操作_1_检索数据 目录 7.1.1 数据集 7.1.2 学生选课关系表 7.1.3 供应商关系表 7.2.1 从表中查询所有行和列 7.2.2 从表中查询部分行 7.2.3 查询满足某个条 ...

  9. c mysql并行多条sql_Linux上使用C语言执行多条SQL命令访问MYSQL数据库的有关问题...

    Linux下使用c语言执行多条SQL命令访问mysql数据库的问题 Linux(Ubuntu10.04)系统,MYSQL5.1数据库,C语言! 数据库中有两张表:表A.B! 使用C语言从表A中查询数据 ...

  10. mysql超长sql查询_超长SQL怎么查询?MySQL列长度限制有哪些 | 学步园

    MySQL字符串的限制长度看似重要性不要,其实和整个MySQL数据库的安全性是息息相关的,很值得我们去深入研究分析.SQL注入攻击一直都在被广泛的讨论,然而人们却忽略了今天我将要介绍的这两个安全隐患, ...

最新文章

  1. 村上春树 开始写作_如何克服对写作的恐惧并找到开始的动力
  2. Android实例RSS客户端开发(1)
  3. 浅谈ANR及log分析ANR
  4. html5表白页面3d,七夕节表白3d相册制作(html5+css3)
  5. 【洛谷 - P2756】飞行员配对方案问题(网络流最大流,输出方案)
  6. set集合以及知识点补充
  7. 又见高铁霸座,占座者嚣张称“就不让”!结果舒适…
  8. 简易OA漫谈之工作流设计(五,直接上级)
  9. 5绘制收银台程序_进来学知识了:实操之C/C++的绘制
  10. 一次性纸餐具行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  11. python私有成员与公有成员_Python访问限制私有还是公有的介绍(附示例)
  12. vs2012新建项目时出现错误提示框解决办法
  13. python csv生成vcf
  14. Python实现直角坐标系求两点间距离
  15. 电阻式触摸屏UI设计
  16. 如何用MATLAB编写简单的音乐程序
  17. 06-手机登录token生成容联云短信验证用户认证和网关整合(网关做统一权限认证)
  18. 卸载Win10右下角资讯和兴趣(天气)
  19. Vue学习记录07--vue路由的使用
  20. java 图形界面 登陆_java登录图形界面

热门文章

  1. 简单实现x的n次方pta_数学学霸的解题思路1“降低次方和次元”
  2. STM32:win10装CH340驱动、获取删除权限
  3. 穿越火线好友服务器不稳定,穿越火线合区后新危机,玩家:卡顿掉帧没法玩
  4. 字体系统之字体粗细(CSS、HTML)
  5. vue使用three.js 第一人称移动。与cs控制角色移动一样(第一人称旋转相机+控制相机移动)
  6. Open3d之计算源点云与目标云的距离
  7. java 反复器_java集合类中的枚举器(反复器)
  8. python使用rpa需要什么插件_使用Python制作ArcGIS插件基础篇——工具介绍
  9. Halcon——使用标定板标定像素当量
  10. 如何在定制化组件中实现并使用v-model