分页

Mybatis框架插件PageHelper的使用

萝らか妹 提交于 2020-03-31 02:44:58
在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。 前端分页 一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例如dataTable)会提供分页动作。 特点是:简单,很适合小规模的web平台;当数据量大的时候会产生性能问题,在查询和网络传输的时间会很长。 后端分页 在ajax请求中指定页码(pageNum)和每页的大小(pageSize),后端查询出当页的数据返回,前端只负责渲染。 特点是:复杂一些;性能瓶颈在MySQL的查询性能,这个当然可以调优解决。一般来说,web开发使用的是这种方式。 我们说的也是后端分页。 MySQL对分页的支持 简单来说MySQL对分页的支持是通过limit子句。请看下面的例子。 1 limit关键字的用法是 2 LIMIT [offset,] rows 3 offset是相对于首行的偏移量(首行是0),rows是返回条数。 4 5 # 每页10条记录,取第一页,返回的是前10条记录 6 select * from tableA limit 0,10; 7 # 每页10条记录,取第二页,返回的是第11条记录,到第20条记录, 8 select * from tableA limit 10,10; 这里提一嘴的是

EasyUI学习笔记---Datagrid真分页

久未见 提交于 2020-03-29 05:53:33
EasyUI Datagrid组件在我看来功能还是很强大的,在我使用过程中遇到分页请求的问题困扰了一天才解决,下面我就把我遇到的问题分享一下 //datagrid数据表格渲染 $("#dg").datagrid({ loader: function(param, success, error) { var pageNumber = param.page; var pageSize = param.rows; $.ajax({ type: "get", url: url, dataType: 'jsonp', data: "pageNum=" + pageNumber + "&pageSize=" + pageSize, success: function(data) { if(data.code == 0) { var arr = data.result.content; $("#dg").datagrid('loadData', { total: data.result.page.totalRecord, rows: arr }) } }, error: function() { error.apply(this, arguments); } }); } }) 传入的参数有param, success, error可选 这里我主要用到了param,param有param.page

easyUI DataGrid 分页

倖福魔咒の 提交于 2020-03-29 05:51:20
easyUI 自带了分页控件pagination, 那么在datagrid中只需要设置pagination:true即可。 datagrid分页如何与后台数据进行交互呢? datagrid设置分页后,会有两个参数传递到后台,在后台接受这两个参数,取出相应数据,返回到前端显示 page :当前第几页 rows :当前页显示多少条数据 当点击分页时,都会重新发送一次请求 并且后台需要返回total 表示一共有多少条数据,前端会接受它,算出{pages},{from},{to},{total}等一系列信息。 那么怎么设置下面分页工具条显示成中文呢? var p = $('#tb').datagrid('getPager'); $(p).pagination({ pageSize: 10,//每页显示的记录条数,默认为10 pageList: [5,10,15],//可以设置每页记录条数的列表 beforePageText: '第',//页数文本框前显示的汉字 afterPageText: '页 共 {pages} 页', displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录', onBeforeRefresh:function(){ $(this).pagination('loading'); alert('before refresh');

Struts2与easyui分页查询

落花浮王杯 提交于 2020-03-29 05:42:56
easyui里面分页查询:在easyui框架里面已经进行一些分装,所以我们只要进行后台分页查询即可 web.xml和struts.xml文件的配置的就不需要我多说了,和分页前代码一样,不需要更改; 需要修改的文件: 1.mapper.xml文件中需要配置:   要进行分页查询的sql语句: 修改后的分页查询sql语句是: 2.在mapper.xml文件中还需要添加查询数据的总的条数 3.就是在dao,service层都需要填加相应的查询数据的总条数的方法《---》与mapper.xml中对应queryOrgTotal,如果不添加该方法,后面页面上就不会有分页 消息,只会获取easyui框架自定义设置的一页多少数据条数,并且也不能进行分页;这样如果要查看所有的数据,就必须更改easyui框架的一页多少条数据,如下: 如果非要查询所有的数据,就必须更改显示10的哪点就行,但是页码1不会变,如下: 4.当添加了与mapper.xml文件对应的queryOrgTotal方法,就没有必要这样,相应后台action的代码: 效果图如下: 来源: https://www.cnblogs.com/yj716716yj/p/5523567.html

Repeater控件的分页实现

若如初见. 提交于 2020-03-28 07:26:58
本文讲解Repeater控件与PagedDataSource相结合实现其分页功能。PagedDataSource 类封装那些允许数据源控件(如 DataGrid、GridView)执行分页操作的属性。如果控件开发人员需对自定义数据绑定控件提供分页支持,即可使用此类。 PagedDataSource 类的部分公共属性: AllowCustomPaging // 获取或设置指示是否启用自定义分页的值。 AllowPaging // 获取或设置指示是否启用分页的值。 Count // 获取要从数据源使用的项数。 CurrentPageIndex // 获取或设置当前页的索引。 DataSource // 获取或设置数据源。 DataSourceCount // 获取数据源中的项数。 FirstIndexInPage // 获取页中的第一个索引。 IsCustomPagingEnabled // 获取一个值,该值指示是否启用自定义分页。 IsFirstPage // 获取一个值,该值指示当前页是否是首页。 IsLastPage // 获取一个值,该值指示当前页是否是最后一页。 IsPagingEnabled // 获取一个值,该值指示是否启用分页。 IsReadOnly // 获取一个值,该值指示数据源是否是只读的。 IsSynchronized // 获取一个值

DataGrid控件的分页

我们两清 提交于 2020-03-28 07:23:33
自动分页: dg1.AllowPaging = True; 自定义分页:dg1.AllowPaging = dg1.AllowCustomPaging = True; 1.自动分页 1)设置DataGrid控件的AllowPaging属性为True。 可以直接在属性面板中设置,也可以在DataGrid控件的属性生成器中设置 2)为DataGrid控件编写PageIndexChanged事件处理方法,代码如下: --------------------------------------------------------------------------- DataGrid1.CurrentPageIndex = e.NewPageIndex; //更改显示页索引后,要重新绑定DataGrid控件 datagridBind(); //这是一个用于绑定页面上DataGrid控件的方法 --------------------------------------------------------------------------- 2.对自动分页的分析 首先,设置DataGrid控件dg1的AllowPaging属性为True 其次,设置dg1的PageSize属性(即单页上显示的项数) 三,为dg1的DataSource属性指定数据源(实现IEnumerable

AspNetPager真假分页对照实例

旧时模样 提交于 2020-03-28 07:21:50
从開始学习 BS 已经有一段时间了。 对于 BS 的设计,都是进行的网页设计,当中包含从数据库中取出来的数据。显示在页面上。曾经在 CS 中,都是使用 GridView 等表格控件进行显示,因为数据小。并且右側又有滚轮。 所以从来都没有考虑过给数据进行分页。所以这是一大失误。 如今反应过来也不算晚。接下来,让我们接触一下分页。 不进行分页的弊端: 对 于大数据的查询操作。 1 、数据量太大,窗口加载时间太慢 2 、显示的数据量太大,用户看起来不舒服。 分页的两种方式: 假分页: 在运行查询的时候,就把全部的数据都查询出来,之后再跳转页面的时候 就不须要进行查询了。 真分页: 在运行查询操作的时候,仅仅查询所显示当前页面的内容进行显示。之后的跳转页面也须要查询数据库取相应数据。 在数据量大的情况下对照: 在小数据的情况下,由于如今的电脑处理速度都够快,採用真分页和假分页用户体验度没有区别。 关于怎样加入AspNetPager控件,借阅下面文章: http://blog.csdn.net/u010066934/article/details/38374111 真假分页实例结果图: 使用自带的GridView表格来显示数据。利用AspNetPager控件 进行分页。 怎样使用AspNetPager请翻阅---。 我就不赘述了。 html主界面: <table class="auto

django之web分页

喜夏-厌秋 提交于 2020-03-28 07:20:40
#500条数据要做成分页展示LIST = [] for i in range(500): LIST.append(i) #vitest函数 def vitest(request):   #获取p页面的int类型数字 访问连接其实:127.0.0.1/8000/vitest/?p=1 current=request.GET.get('p',1) current=int(current) start=(current-1)*20 end=current *20 data=LIST[start:end] return render(request,'4.html',{'i':data}) html代码 如何想好看些建议使用bootstrap http://www.runoob.com/bootstrap/bootstrap-pagination.html <div id="3"> <a href="http://127.0.0.1:8100/vitest/?p=1">1</a> <a href="http://127.0.0.1:8100/vitest/?p=2">2</a> <a href="http://127.0.0.1:8100/vitest/?p=3">3</a> </div> 如何你的 分页代码写到后台想以模板传染的方式渲染到前台,这样是有问题 1

Java面试之MyBatis

六月ゝ 毕业季﹏ 提交于 2020-03-27 16:09:52
125. MyBatis 中 #{}和 ${}的区别是什么? \#{}是预编译处理,${}是字符替换。 在使用 #{}时,MyBatis 会将 SQL 中的 #{}替换成“?”,配合 PreparedStatement 的 set 方法赋值,这样可以有效的防止 SQL 注入,保证程序的运行安全。 126. MyBatis 有几种分页方式? 分页方式:逻辑分页和物理分页。 逻辑分页: 使用 MyBatis 自带的 RowBounds 进行分页,它是一次性查询很多数据,然后在数据中再进行检索。 物理分页: 自己手写 SQL 分页或使用分页插件 PageHelper,去数据库查询指定条数的分页数据的形式。 127. RowBounds 是一次性查询全部结果吗?为什么? RowBounds 表面是在“所有”数据中检索数据,其实并非是一次性查询出所有数据,因为 MyBatis 是对 jdbc 的封装,在 jdbc 驱动中有一个 Fetch Size 的配置,它规定了每次最多从数据库查询多少条数据,假如你要查询更多数据,它会在你执行 next()的时候,去查询更多的数据。就好比你去自动取款机取 10000 元,但取款机每次最多能取 2500 元,所以你要取 4 次才能把钱取完。只是对于 jdbc 来说,当你调用 next()的时候会自动帮你完成查询工作。这样做的好处可以有效的防止内存溢出。