分页

项目学习记录-分页插件PageHelper

匿名 (未验证) 提交于 2019-12-03 00:32:02
分页插件PageHelper 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。 该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页 添加PageHelper 依赖到工程中 在Mybatis配置xml中配置拦截器插件 < plugins > <!-- com.github.pagehelper为PageHelper类所在包名 --> < plugin interceptor = "com.github.pagehelper.PageHelper" > <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--> < property name = "dialect" value = "mysql" /> </ plugin > </ plugins > 获取分页信息 PageHelper.startPage( 1 , 10 ); List <Country> list = countryMapper.selectAll(); //用PageInfo对结果进行包装 PageInfo page = new PageInfo( list ); PageInfo回讲数据存到Page对象中

Mybatis分页插件PageHelper

匿名 (未验证) 提交于 2019-12-03 00:30:01
1、导入依赖 < dependency > < groupId > com.github.pagehelper </ groupId > < artifactId > pagehelper </ artifactId > < version > 3.4.2 </ version > </ dependency > < dependency > < groupId > com.github.jsqlparser </ groupId > < artifactId > jsqlparser </ artifactId > < version > 0.9.1 </ version > </ dependency > 2、mybatis配置文件(SqlMapConfig.xml) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> < configuration > <!-- 配置分页插件 --> < plugins > < plugin interceptor = "com.github.pagehelper.PageHelper" >

Template Method Principle

匿名 (未验证) 提交于 2019-12-03 00:29:01
Template Method Principle 在父类中实现业务逻辑,子类中实现具体动作。 在父类中实现了 templateMethod ,实现打印逻辑,在子类中,实现具体动作,如 open , print , close 等。 开闭原则 在扩展新的 ConcreteClass 时,不需要修改原 AbstractClass 类。 其他场景 分页操作,实现分页控件,在父类中实现具体的分页逻辑,子类中需要实现需要分页的数据查询。 文章来源: Template Method Principle

SQL SERVER分页存储过程

匿名 (未验证) 提交于 2019-12-03 00:27:02
----使用存储过程写一个分页查询 select * from T_Users go create proc usp_getDataFY @pagesize int =10, @sumCount int output, as begin --1.编写SQL查询语句,把用户要的数据查询出来 select * from (select *,row=row_number() over(order by userid asc) from T_Users) as t where t.row between (@pageindex-1)*@pagesize+1 and @pagesize*@pageindex --2.计算总的记录条数 set @sumCount=(select count(*) from T_Users) set @pageCount=ceiling(@sumCount*1.0/@pagesize) end --------------------------------- 下面是调用存储过程,看第三页的数据 exec usp_getDataFY @pageindex=3, @sumCount=@rowConut output,@pageCount=@pageSum output @pageindex变量可以赋值,不赋值默认就是1 显示结果: 完美。 文章来源: SQL

EasyUI Pagination 实现分页功能getPager

匿名 (未验证) 提交于 2019-12-03 00:27:02
查看了一边EasyUI 官网对于分页功能的编写,刚开始使用easyui时发现其中有很多自己不理解的地方,还好帮我们做了很多函数的封装,供我们直接调用就可以了,更好的使用在网页中,对于新手更是很好理解。便于操作和更改,下面我们对于分页做一次详细的解剖,在工作中遇到各种坑,发现一套完整的功能讲解,并献上代码,以供各位指正。 1,第一步通过标记创建分页(pagination)data-options里面的内容可参考官网的API根据需要添加。 2.第二步 使用 javascript 创建分页(pagination)。 $(function($) {getPager_DataGrid('recordDatagrid');//获取table分页的id initDataTables(1,10,"y");});//页面进入就执行//回调函数 3.第三步 使用 处理ajax请求回来的数据操作如下。 4.第四步 使用,这里从ajax传回的数据处理完之后,页面显示的分页此时是英文显示,我们还需要做一步处理,easyui已经帮我们做好了封装的函数,这一步直接粘贴复制就可以了,对应好table的id的名字 。 function getPager_DataGrid(datagridID){//这里我们要对照第二步的函数名一致 var p = $('#'+datagridID+'').datagrid(

微机原理-80386(3)

匿名 (未验证) 提交于 2019-12-03 00:26:01
保护模式下的内存管理: 逻辑地址:对段内存空间进行寻址的地址称为逻辑地址,也叫做虚拟地址,这是应用程序设计人员进行变成设计时用到的地址。 逻辑地址由一个16位的段选择子和32位的偏移量两部分组成。 段选择子存放在段寄存器中。 线性地址:它是沟通物理地址与逻辑地址的桥梁,32位微处理器芯片内部的分段部件将逻辑地址空间转换成32位的线性地址。 物理地址:物理地址是指内存芯片阵列中每个阵列所对应的唯一的地址,32位地址线可直接寻址4GB内存单元。 地址转换框图 采用分页管理,便于实现虚拟存储器管理,可以方便地以页为单位把内存空间映射到磁盘空间,分页还能明显提高存取数据的效率,有效利用内存碎片。 分段技术将逻辑地址转换成线性地址,当CR0的PG字段设为0时,线性地址就是物理地址,当PG为1时,分页部件将线性地址转换成物理地址。 80386采用两层表来实现分页管理。第一层被称为页目录,第二层被称为页表。 页目录表中包含1024个页目录项,每项4字节;页表中也包含1024个32位的页表项,每个页表项对应了一个4KB的连续物理地址空间。 分页机制将32位的线性地址分为3部分: (1)线性地址的高10位作为页目录的索引号,指向1024个页目录项中的某一项。 (2)线性地址的的中间10位作为页表的索引号 (3)线性地址的低12位作为页面的偏移地址,也就是物理地址的低12位 转载请标明出处: 微机原理

逻辑分页和排序 的思路

匿名 (未验证) 提交于 2019-12-03 00:22:01
一般分页有分页插件,排序在sql指定字段就好,但是最近我遇到一种情况,就是sql语句比较复杂。。有八十多行,两张表(7w 和 11w)数据不算多,但是sql语句嵌套的有点厉害,我特意试了试,那个sql跑完要花1.3w+秒。。。项目里用那个sql肯定不行,然后就把sql简化了,作为了四个查询单表的sql,这样的话就没有嵌套了,但是这样也导致所有的逻辑业务要在serviceImpl里处理了。。而且还不能用分页插件和指定排序字段。。业务逻辑我就不和大家bb了,说说逻辑分页和排序 的思路。 首先排序: Collections.sort(underList), Collections有个排序的方法,sort里面放的就是排序字段。另外,还需要让underList字段对应的对象实现Comparable接口,这是一个比较器接口。例如: public class Undercarriage implements Serializable , Comparable < Undercarriage > 该对象就实现了序列化接口和比较器接口两个接口,然后在该对象里面重写它的compareTo方法: @Override public int compareTo ( Undercarriage o ) { //return this.underRate.compareTo(o.underRate); if (

分页分段以及段页式存储管理中逻辑地址到物理地址的转换过程解析

匿名 (未验证) 提交于 2019-12-03 00:22:01
文章开始把我喜欢的这句话送个大家:这个世界上还有什么比自己写的代码运行在十万人的电脑上更酷的事情吗,如果有那就是让这个数字再扩大十倍。 首先要知道,物理地址=块号+页内地址 所以物理地址和逻辑地址后面部分是相同的,即都为页内地址。 下面以一个例子说明如何由逻辑地址求物理地址 首先是分页存储 (1)某虚拟存储器的用户编程空间共64个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下: 由“内存为16KB”,2^4=16得知块号占4位。 即则逻辑地址0A5C(H)所对应的物理地址是265C; ( ) (PCB) TBL(Translation look-aside buffer, ) + TBL TBL TBL Hierarchical Paging( ) 分页存储有内部碎片。 接下来是分段存储segmentation 为什么要引入分段存储呢,简单地说分页管理方式是从计算机的角度考虑设计的,以提高内存利用率,提高计算机的性能,且分页通过硬件机制实现,对用户完全透明;而分段管理方式的提出则是考虑了用户和程序员,以满足方便编程,信息保护和共享,动态增长以及动态链接等多方面的要求。 段式管理方式按照用户进程的自然段划分逻辑空间。例如,用户进程由主进程,两个子进程,栈和一段数据段构成,于是便可以把这个用户进程分为五段,每段从0开始编址