分页

JAVA使用subList实现List的伪分页

孤街醉人 提交于 2020-01-24 10:49:40
@ TOC 使用前提:当列表页的数据量比较大,而数据源又不是数据库的时候(如调用第三方接口),无法支持分页.但是产品那边为了页面统一,用户体验,要实现分页功能的时候. 话不多说,先 上代码 : /** * 处理列表分页 * @author zsc * @param list 分页的list * @param pageNum 页码 * @param pageSize 每页条数 * @return java.util.List<T> * @date 2020/1/19 15:46 **/ private < T extends Serializable > List < T > handlerListPage ( List < T > list , int pageNum , int pageSize ) { if ( CollectionUtil . isEmpty ( list ) ) { return new ArrayList < T > ( ) ; } // 每页大小不能大于总条数 pageSize = Math . min ( pageSize , list . size ( ) ) ; // 如果是第一页 从0开始 到每页条数+1结束 int fromIndex = 0 ; int toIndex = fromIndex + pageSize ; // 不是第一页 if

[转帖]Mybatis十八连环问!这谁顶得住?

落花浮王杯 提交于 2020-01-24 01:24:04
Mybatis十八连环问!这谁顶得住? http://www.itpub.net/2020/01/19/5130/ 1、#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()。 2、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签? 答:还有很多其他的标签,<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态sql的9个标签,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中<sql>为sql片段标签,通过<include>标签引入sql片段,<selectKey

115网盘怎么搜索资源

孤者浪人 提交于 2020-01-23 21:51:43
1、啥是 MyBatis? MyBatis 是一个半自动 ORM 持久层框架,她内部对 JDBC 做了封装,并使用 XML 或注解来配置和映射数据库信息,开发人员只需要关注 SQL 语句本身,避免了处理繁琐的数据库映射过程,使 Java 代码和 SQL 完全分离,有利于分层开发,提高开发效率和灵活性。 2、MyBatis 的优缺点和适用场景? 1)优点 基于SQL语句编程,非常灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除SQL与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。 与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接; 很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。 能够与Spring很好的集成; 提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。 2)缺点 SQL语句的编写工作量较大,尤其当字段多、关联表多时。 不支持方言,数据库移植性差。 SQL存在XML文件中,调试不方便。 对动态SQL的支持不是很好,提供的标签过于简单。 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。 3)适用场景 MyBatis 解耦了 SQL 和 程序代码

IIS停止服务 报错Connections_Refused

我的未来我决定 提交于 2020-01-22 23:00:43
IIS版本6.0 无故停止工作。 重启IIS 没有效果,必须重启web服务器。出现客户端无法访问Web服务器上的站点,错误信息提示为"页面无法显示"的情况。登录服务器检查后发现IIS并未停止运行,各服务也正常处理,但就是无法访问站点上的页面(包括静态页面) 首先查看 web服务器的IIS 日志文档,位置默认在 C:\WINDOWS\system32\LogFiles\ 下 这个目录下都是IIS的日志,其中 HTTPERR 文件夹中是IIS的报错记录 打开 HTTPERR 文件夹中出错日期的文档,例如 httperr7.log,显示 2016-02-18 05:54:22 - - - - - - - - - 1_Connections_Refused - 2016-02-18 05:59:22 - - - - - - - - - 1_Connections_Refused - 2016-02-18 06:02:07 - - - - - - - - - 5_Connections_Refused - 2016-02-18 06:03:37 - - - - - - - - - 2_Connections_Refused - 2016-02-18 06:03:42 - - - - - - - - - 2_Connections_Refused - 2016-02-18 06:04:22 -

基于Vue.js的表格分页组件

不想你离开。 提交于 2020-01-22 01:00:26
BootPage组件简介 其实也不是啥高大上的组件了,相反确实一个简单的表格分页组件而已,主要是自己最近项目中需要一个表格分页组件,而Vue官方组件库里分页组件都功能太强大或者没有适合我的,所以就自己写了一个凑合着用,或许有人和我一样需要这样一个简单的分页组件来实现简单的分页功能,我便在这里分享一下,大家自觉填坑咯。 如需高大上的组件,可以移步Vue官方组件库: https://github.com/vuejs/awesome-vue#libraries--plugins BootPage是一款支持静态数据和服务器数据的表格分页组件,支持调整每页显示行数和页码显示个数,样式基于bootstrap,就像这样: 在线演示: https://luozhihao.github.io/B... 使用方法 在.vue的组件文件中我们这样写template,即html代码: <table class="table table-hover table-bordered"> <thead> <tr> <th width="10%">id</th> <th width="30%">name</th> <th width="40%">content</th> <th width="20%">remark</th> </tr> </thead> <tbody> <tr v-for="data in

js的打印分页

老子叫甜甜 提交于 2020-01-21 11:59:47
http://www.cnblogs.com/moonvan/archive/2010/08/25/1807994.html js控制分页打印、打印分页示例 js的打印分页 调用IE自带的打印功能时,在需要分页的地方插入如下HTML,便可实现打印分页: <div style=" page-break-before:always ;"><br /></div> http://blog.csdn.net/itchiang/article/details/9319075 http://www.jb51.net/article/48506.htm <!DOCTYPE html> < html > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> < title >无标题文档</ title > < script type = "text/javascript" > function doPrint() { bdhtml=window.document.body.innerHTML; sprnstr=" <!--startprint--> "; eprnstr=" <!--endprint--> "; prnhtml=bdhtml.substr(bdhtml.indexOf

pagehelper分页

做~自己de王妃 提交于 2020-01-21 04:27:44
1.分页方法PageUtils 请见前几期:https://blog.csdn.net/weixin_44145478/article/details/102461178 public class Teacher { private String name ; private Integer age ; private String sex ; //set get... } 通常情况 解析: (1)封装的PageUtils.startPage(num,size),这个方法就是类似我们数据库操作的limit start ,count (2)得到的对象里面包含很多的字段信息,需要的有(总页数,总条数,当前页,以及该页数据) (3)如果我们只想得到分页处理之后我们的实体对象的结果,那么就调用PageUtils对象的getDataList()方法即可。 @Test public void test3 ( ) { PageBaseReqVo pageBaseReqVo = new PageBaseReqVo ( ) ; pageBaseReqVo . setPageNo ( 2 ) ; pageBaseReqVo . setPageSize ( 10 ) ; PageUtils . setStartPage ( pageBaseReqVo . getPageNo ( ) ,

内存管理-----虚拟内存

谁说胖子不能爱 提交于 2020-01-20 19:06:56
前言 在8086/80186时还没有操作系统,把它称之为 实地址模式 。 那么怎么将地址表示出来呢? 比如:数据寄存器DS中的值是16位,要转换成20位的地址。怎么转换呢? 所以左移四位后则低四位变为0了,然后再加上IP寄存器中的偏移值,就是物理地址。 DS << 4 + IP (即偏移值) = 物理地址 没有操作系统则它的空间就称为物理空间(上图的空间) DS( 基地址 ) IP( 偏移地址、偏移量、逻辑地址 ) IP寄存器中最多存16位,则偏移量最多为2^16=64K. 因为 起始位置必须是16的倍数 ,则 整个段大小在16B-64K之间 ,则它的真实 大小就不确定 ,就可能导致 如果别人恶意修改这个IP寄存器 中的值,则 段的大小就会发生改变 ,就会导致访问无法访问的空间。 因此为了解决这样的问题,所以我们就需要 保存记录 基地址 段大小 以及 访问权限 。 所以在有了操作系统以后, 因为要向上兼容 ,所以 上述寄存器不改变 ,而添加 GDTR(全局段描述表寄存器) 和 LDTR(局部段描述符表寄存器) 。 我们这里先从GDTR分析,是在 内存存储 的 全局段描述表 (相当于数组) GDTR存储了这些,那么DS、CS、SS(ES)这些寄存器做什么呢? 存储 段描述符表的下标 段描述符表的类别 以及权限位 当操作系统启动时,默认占据12个描述符表项,而用户进程最多只能用8192

计算机操作系统-内存管理

老子叫甜甜 提交于 2020-01-20 10:27:13
虚拟内存 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的指令。 从上面的描述中可以看出,虚拟内存允许程序不用将地址空间中的每一页都映射到物理内存,也就是说一个程序不需要全部调入内存就可以运行,这使得有限的内存运行大程序成为可能。例如有一台计算机可以产生 16 位地址,那么一个程序的地址空间范围是 0~64K。该计算机只有 32KB 的物理内存,虚拟内存技术允许该计算机运行一个 64K 大小的程序。 分页系统地址映射 内存管理单元(MMU)管理着地址空间和物理内存的转换,其中的页表(Page table)存储着页(程序地址空间)和页框(物理内存空间)的映射表。 一个虚拟地址分成两个部分,一部分存储页面号,一部分存储偏移量。 下图的页表存放着 16 个页,这 16 个页需要用 4 个比特位来进行索引定位。例如对于虚拟地址(0010 000000000100),前 4 位是存储页面号 2,读取表项内容为(110 1)

Mybatis-Plus 插件学习

左心房为你撑大大i 提交于 2020-01-19 19:58:07
官方指南 1.逻辑删除 在相应字段上添加注解 @TableLogic private Integer deleted; 说明: 使用mp自带方法删除和查找都会附带逻辑删除功能 (自己写的xml不会) example 删除时 update user set deleted=1 where id =1 and deleted=0 查找时 select * from user where deleted=0    2.通用枚举类 比如一些状态属性 ① 声明枚举 定义枚举 public enum AgeEnum implements IEnum<Integer> { ONE(1, "一岁"), TWO(2, "二岁"), THREE(3, "三岁"); private int value; private String desc; @Override public Integer getValue() { return this.value; } } 使用枚举 public class User{ /** * 名字 * 数据库字段: name varchar(20) */ private String name; /** * 年龄,IEnum接口的枚举处理 * 数据库字段:age INT(3) */ private AgeEnum age; /** * 年级,原生枚举(带{@link