分页

pagehelper 使用

左心房为你撑大大i 提交于 2019-12-23 04:44:14
MySQL对分页的支持 简单来说MySQL对分页的支持是通过limit子句。请看下面的例子。 limit关键字的用法是 LIMIT [offset,] rows offset是相对于首行的偏移量(首行是0),rows是返回条数。 # 每页10条记录,取第一页,返回的是前10条记录 select * from tableA limit 0,10; # 每页10条记录,取第二页,返回的是第11条记录,到第20条记录, select * from tableA limit 10,10; Mybatis分页插件PageHelper 1、POM依赖 这里用5.1.4 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.4</version> </dependency> 2、Mybatis对PageHelper的配置 打开Mybatis配置文件,一般在Resource路径下。 <plugins> <!-- 5.0.0之前使用com.github.pagehelper.PageHelper,以后使用com.github.pagehelper.PageInterceptor作为拦截器; --> <plugin interceptor="com

TODO:数据库优化之分页

拈花ヽ惹草 提交于 2019-12-22 18:56:56
TODO:数据库优化之分页 本文的例子是以MongoDB数据库为准,其它数据库各位也可以举一反三进行优化。 在MongoDB中分页使用 a.skip(n)跳过前n个匹配的文档; b.limit(m)返回m个结果,要是匹配的结果不到m个,则返回匹配数据量的结果,m是指定上限数量,而不是下限数量; c.sort({“name”: 1,”address”:-1}),1表示升序,-1表示降序。 使用skip跳过少量的文档还可以。但是数据量非常多的话,skip就会变得非常慢,每个数据库都会有这种情况,所以要尽量避免过多的使用skip。那要怎么做分页,我们可以利用上次的结果来计算下次的查询。 1.使用skip的分页 Page1 = db.user.find({}).limit(100) Page2 = db.user.find({}).skip(100).limit(100) Page3 = db.user.find({}).skip(200).limit(100) 2.利用上次的结果来计算下次的查询,按时间戳(timestamp)排序 获取第一页 Page1 = db.user.find({}).sort({“timestamp”: -1}).limit(10) 获取当前页面的最后一条记录的时间戳lasttimestamp, 根据lasttimestamp进行查询下一页数据 Nextpage

一起谈.NET技术,详解ASP.NET MVC数据分页

只谈情不闲聊 提交于 2019-12-22 18:54:28
ASP.NET MVC框架已经进入2.0时代,本文将从 ASP.NET MVC 数据分页谈起,希望能对大家有所帮助。 在网页上进行表格资料或其他显示资料的分页是一种十分常见的需求,以前我们有 GridView 或 DataPager 可以帮我们自动分页,虽然到了 ASP.NET MVC 一切全部重头来过,但我们也不用真的那麽辛苦的自己实做分页,因为早就有人帮我们写好程式并开放原始码分享给这个世界了。 如果你已经体会到在 ASP.NET MVC 中妥善利用强型别(Strong Typed)特性进行开发的优点时,你将会发现搭配 Visual Studio 2008 进行专桉开发的过程有多美妙。以下我先举一个简单的例子: 你可以在 Controller 中定义一个 Action 方法,并在裡面先取得所有需显示在 View 中的资料,如果你用 LINQ to SQL 的话,可以直接传入 IQueryable 型别的物件到 View 中,当成 View 裡面使用的 Model,这样可以享受延迟载入(Defered Loading) 的效果。 代码 public ActionResult Index() { IQueryable<Customer> custs = from cust in db.Customers where cust.City == "Taiwan" select cust

几种常见SQL分页方式效率比较

本小妞迷上赌 提交于 2019-12-22 13:54:04
转载地址: http://www.cnblogs.com/iamowen/archive/2011/11/03/2235068.html 分页很重要,面试会遇到。不妨再回顾总结一下。 1.创建测试环境,(插入100万条数据大概耗时5分钟)。 create database DBTestuse DBTest--创建测试表create table pagetest(id int identity(1,1) not null,col01 int null,col02 nvarchar(50) null,col03 datetime null)--1万记录集declare @i intset @i=0while(@i<10000)begin insert into pagetest select cast(floor(rand()*10000) as int),left(newid(),10),getdate() set @i=@i+1end 2.几种典型的分页sql,下面例子是每页50条,198*50=9900,取第199页数据。 --写法1,not in/topselect top 50 * from pagetest where id not in (select top 9900 id from pagetest order by id)order by id--写法2,not

MyBatis分页查询

◇◆丶佛笑我妖孽 提交于 2019-12-22 03:44:43
在项目的开发中,需要经常对数据表进行分页查询。下面将介绍使用MyBatis实现对MySQL数据库表的分页查询,该分页方式仅适用于数据表中的数据量比较少的业务。 【实例】 分页查询用户列表,并显示分页信息。执行结果如下图: (1)创建数据库表 在MySQL数据库中创建用户信息表(tb_user),并添加数据。 -- 创建“用户信息”数据表 CREATE TABLE IF NOT EXISTS tb_user ( user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号', user_name VARCHAR(50) NOT NULL COMMENT '用户姓名', province VARCHAR(50) NOT NULL COMMENT '省份', create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间' ) COMMENT = '用户信息表'; -- 添加数据 INSERT INTO tb_user(user_name,province) VALUES ('pan_junbiao的博客_01','广东省'),('pan_junbiao的博客_02','黑龙江省'),('pan_junbiao的博客_03','山东省'),('pan_junbiao的博客_04',

java简单分页工具类

两盒软妹~` 提交于 2019-12-21 04:48:11
1 import java.util.List; 2 3 /** 4 * 分页工具 5 * @author Administrator 6 * 7 */ 8 public class PageBean<T> { 9 10 private int pageNo = 1; //当前页 11 private int pageSize = 4; //每页个数 12 private int totalCount; //总记录数 13 private int totalPages; //总页数--只读 14 private List<T> pageList; //每页对应的集合泛型 15 public int getPageNo() { 16 return pageNo; 17 } 18 //当前页码不能小于1不能大于总页数 19 public void setPageNo(int pageNo) { 20 if(pageNo<1) 21 this.pageNo = 1; 22 else if(pageNo > totalPages) 23 this.pageNo = totalPages; 24 else 25 this.pageNo = pageNo; 26 } 27 public int getPageSize() { 28 return pageSize; 29 } 30 public

WinForm分页控件(大数据量)

倖福魔咒の 提交于 2019-12-20 09:06:49
说到数据分页,大家一定就会想到分页控件,无论是Web的或者是Winform的项目,相信很多人都会去使用分页控件,因为简单吗,可以少敲很多的代码,哈哈,我也是其中的一个,接下来 就把一个比较好的 Winform分页控件和大家分享一下,我会尽量把注释写的详细一点,还请大家多多关注我的博客,我会把更多的 经典的.NET实际应用比较广泛的小例子和大家分享,更多的精品的免费源码尽在天天源码论坛(www.ttyuanma.com) 分页控件的效果图如下: (下载地址在文章的最后)首先我们先把,下载下来的压缩包中的分页控件DLL文件夹中的WinFormPager.dll文件放到你的项目的bin文件夹下,然后在vs2008工具箱的单机鼠标右键,选择-选择项,然后选择浏览,找到你bin中的WinFormPager.dll然后确定,分页控件就添加到你的工具箱中了,接下来在你的项目上引用里右键,选择添加引用,也是浏览找到bin中的WinFormPager.dll,这一步不要忘,否则可能会找不到分页控件,好了接下来看代码吧 首先需要建一个PageData.cs的分页控件数据提供类,代码如下: 分页控件数据提供类 /// <summary> /// 分页控件数据提供类 /// </summary> public class PageData { private int _PageSize = 10;

微信后台开发三大框架使用过程中遇到的问题

倾然丶 夕夏残阳落幕 提交于 2019-12-19 14:08:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ##1,同时update两张表报错。 1,用户和用户信息是一对一的,弄成一对多的时候,用户信息就是以List的形式存在的。如果同时update 用户(usermain)和用户信息(userinfo)的时候,list的连接就会关闭,因为他们是单向保持关联的, 解决方法:把一对多修改为一对一关系。 #,2,分页点击不起作用 2,做分页的时候,分页点击没有效果,由于微信端页面的struts和action与pc后台的页面放在包中,如果直接使用过滤器的话,就会对struts2的标签造成影响,这时候分页功能就会失效。 #3,时间显示有问题。 input type=date的时候,时间回显的时候,value时间无法显示。这时候注意修改value的值的格式问题。如格式应该和type=date选择出来的格式相同,1992/01/12.后台页应该传日期格式。 来源: oschina 链接: https://my.oschina.net/u/2480757/blog/739560

用memcached做实时分页缓存

末鹿安然 提交于 2019-12-19 14:07:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 用 memcached 做分页缓存,可能很多人会觉得麻烦而不用。因为在增加、修改、删除的过程中,你不知道会影响到哪些数据,而如果把所有分页相关的数据缓存都删除并重新生成一遍,实现又很麻烦,甚至不可行,所以干脆就用 mysql 直接分页,简单方便,但是这样性能却也下降了。 本章就讲一个简单的实现用 memcached 做分页缓存的方法。 首 先假使我们有一个文章页需要做分页显示,分页类型有按分类分页,按最新分页,按热点分页,按自定义方式分页,等等。这就出现了一个比较棘手的问题,我们对 数据的更新影响到哪些分页我们是不可知的,不知道需要删除哪些相关的缓存。你可能会想,更新数据时删除所有类型分页的缓存不就好了。那我问你,有多少种分 页类型,每个类型各有多少页, key 的组成方式各是什么,如果分页带有其他 get 查询参数,你怎么知道 get 都传递了哪些值,不知道这些,你怎么删除全部分页缓存。 讲到这里,你可能会觉得有点失望吧,不是吗,没想到用 memcached 做 分页缓存原来这么麻烦。那么,有没有简单的解决方案?答案是肯定的,请相信,我写这篇文章的目的,就是来告诉你一个简单的解决方案来的。说了这么多,其实 我们需要解决的核心问题就只有一个,我们增加、修改、删除文章数据时,能够让分页的缓存都失效