分页

SpringBoot+MyBatis多数据源使用分页插件PageHelper

[亡魂溺海] 提交于 2019-12-28 11:22:06
之前只用过单数据源下的分页插件,而且几乎不用配置。一个静态方法就能搞定。 PageHelper.startPage(pageNum, pageSize); 后来使用了多数据源(不同的数据库),PageHelper分页插件需要设定一个默认的数据库,mysql、oracle或者其他。但是又不能实时切换,导致请求的第一个类型数据库的请求都可以继续请求,而其他的数据库的请求因为sql语句在不同数据库的count和分页语句不同报错。解决思路是①配置先配置多数据源,再配置多个SqlSessionFactory使用不同的数据源,SqlSessionFactory同时指定某些dao层接口(或者mapper),此时不同的dao层就可以访问不同数据源②在每个SqlSessionFactory中配置一个分页插件第一步骤中的多数据源配置很多博文都有记录,在此不再重复写,我配置的时候参考的是这个链接 http://blog.csdn.net/neosmith/article/details/61202084 他提供了一个多数据源手动配置,一个自动配置方案。因为我们要在多数据源下另外配置分页插件,所以选用手动配置方案。 重点讲第二步骤:一、多数据源下配置分页插件  如果你使用的上边的配置方案,那么你现在应该有多个SqlSessionFactory的bean。我们重点来看某个SqlSessionFactory

Springboot整合pagehelper分页

坚强是说给别人听的谎言 提交于 2019-12-28 11:21:50
一、添加依赖 查找maven中pagehelper的版本 在pom中添加依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.2</version> </dependency> 二、使用 网络上很多文章都会说需要在application.properties进行配置 其实完全不需要,默认的设置就已经满足大部分需要了 直接使用即可 @RequestMapping(value = "getApps.do") public String getApps(Apps apps) { PageHelper.startPage(apps.getPageNum(), apps.getPageSize()); ArrayList<Apps> appsList = appsService.getApps(apps); PageInfo<Apps> appsPageInfo = new PageInfo<>(appsList); return JSON.toJSONString(appsPageInfo); } PageHelper.startPage(需要显示的第几个页面,每个页面显示的数量);

高并发中nginx较优的配置

送分小仙女□ 提交于 2019-12-28 07:36:29
一、这里的优化主要是指对nginx的配置优化,一般来说nginx配置文件中对优化比较有作用的主要有以下几项: 1.nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数。 worker_processes 8; 2.为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 3.下面这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是系统的最多打开文件数(ulimit-n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。 worker_rlimit_nofile 65535; 4.使用epoll的I/O模型,用这个模型来高效处理异步事件 use epoll; 5.每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。 worker_connections 65535; 6.http连接超时时间,默认是60s,功能是使客户端到服务器端的连接在设定的时间内持续有效

备战2020春招,这次彻底搞懂MyBatis,这些面试题没白刷(附答案)

﹥>﹥吖頭↗ 提交于 2019-12-28 02:54:15
前言: 春招面试题MyBatis篇来咯!!! Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 最近有好多朋友在准备春招,所以小编也会多出一些面试专题的文章给有需要的人,所以记得给我点个关注哦 一.MyBatis 框架的缺点: 1、SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有一定要求。 2、SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。 二.MyBatis 框架适用场合: 1、MyBatis 专注于 SQL 本身,是一个足够灵活的 DAO 层解决方案。 2、对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis 将是 不错的选择。 三.MyBatis 与 Hibernate 有哪些不同? 1、Mybatis 和 hibernate 不同,它不完全是一个 ORM 框架,因为 MyBatis 需要 程序员自己编写 Sql 语句。 2、Mybatis 直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高,非常 适合对关系数据模型要求不高的软件开发,因为这类软件需求变化频繁,一但需

Java集合分页

回眸只為那壹抹淺笑 提交于 2019-12-28 01:38:59
Java集合分页 有些时候数据不是在数据库直接查出来,而是Java拼出来的,但是还需要分页,可以使用这个方法,但是数据量较大的慎重,失去了分页查询本身的优势。 /** * 集合分页方法 * @param list * @param pageSize * @param currentPage * @return */ public List < JudicialUpdateItem > page ( List < JudicialUpdateItem > list, int currentPage,int pageSize ) { int totalCount = list.size ( ) ; int pageCount = 1 ; List < JudicialUpdateItem > subList = new ArrayList < > ( ) ; int m = pageCount % pageSize ; if ( m > 0 ) { pageCount = totalCount / pageSize + 1 ; } else { pageCount = totalCount / pageSize ; } if (( ( currentPage - 1 ) * pageSize ) >= totalCount ) { return subList ; } if ( m =

bootstrap 分页

安稳与你 提交于 2019-12-27 21:52:21
本章将讲解Bootsrtap支持分页的特性,分页(pagination),是一种无序列表,bootstrap像处理其它界面元素一样处理分布。 分页(Pagination) 下表列出了 Bootstrap 提供的处理分页的 class。 Class 描述 示例代码 .pagination 添加该 class 来在页面上显示分页。 <ul class="pagination"> <li><a href="#">«</a></li> <li><a href="#">1</a></li> ....... </ul> .disabled, .active 您可以自定义链接,通过使用 .disabled 来定义不可点击的链接,通过使用 .active 来指示当前的页面。 <ul class="pagination"> <li class="disabled"><a href="#">«</a></li> <li class="active"><a href="#">1<span class="sr-only">(current)</span></a></li> ....... </ul> .pagination-lg, .pagination-sm 使用这些 class 来获取不同大小的项。 <ul class="pagination pagination-lg">...</ul> <ul

Ubuntu下的MySQL安装

被刻印的时光 ゝ 提交于 2019-12-27 15:07:58
工程地址: https://github.com/tonglin0325/article-manager.git 1.搭建环境的第一步是导包,把下面这些包都导入工程中 /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/aop /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/apache-commons-logging /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/apache-log4j /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/bean-validator /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/dbcp /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/hibernate-3.6.8. /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/JSTL /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/mysql /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/pager /media/common/工作/Ubuntu软件/SpringMVC

操作系统 - 分段机制 & 分页机制

北城余情 提交于 2019-12-27 12:08:44
文章目录 分段机制 简介 段的定义 段描述符表 段选择符 段描述符 代码和数据段描述符类型 系统描述符类型 分页机制 简介 页表结构 页表项格式 区别 分段机制 简介 80X86 使用了一种称为 段 (Segment)的寻址技术。这种寻址技术把内存空间分成一个或多个称为段的线性区域,从而对内存中一个数据对象的寻址就需要使用一个段的起始地址(即段地址)和一个段内偏移地址两部分构成。 段地址部分使用 16 位的 段选择符 指定,其中 14 位可以选择 2 14 2^{14} 2 1 4 次方即 64K 个段。 段内偏移地址部分使用 32 位的值来指定,因此段内地址可以是 0 到 4G。即一个段的最大长度可达 4G。 程序中由 16 位的段和 32 位的偏移构成的 48 位地址称为一个 逻辑地址 (虚拟地址)。 分段提供了一种机制,用于把处理器可寻址的 线性地址空间 划分成一些较小的称为段的受保护地址空间区域。 段可以用来存放程序的代码、数据和堆栈,或者用来存放系统数据结构(例如 TSS或 LDT)。 如果处理器中有多个程序在运行,那么每个程序可分配各自的一套段。此时处理器就可以加强这些段之间的界限,并且确保一个程序不会通过访问另一个程序的段而干扰程序的执行。 段的定义 每个段由三个参数定义: 段基地址(Base address):指定段在线性地址空间中的开始地址。基地址是 线性地址

分页

我们两清 提交于 2019-12-26 19:02:13
1、引入分页插件样式 <link rel="stylesheet" href="../static/css/jquery.pagination.css"> 2、引入jquery分页插件 <script type="text/javascript" src="../static/js/jquery-1.12.4.min.js"></script> <script type="text/javascript" src="../static/js/jquery.pagination.min.js"></script> 3、应用分页插件 <div class="box"> <div id="pagination" class="page"></div> </div> <script> $(function() { $("#pagination").pagination({ // data.current_pag 当前页 currentPage: {{data.current_page}}, // data.total_page 总页数 totalPage: {{data.total_page}}, // 点击页码所执行的函数 callback: function(current) { var keyword = $(".input_txt").val() window.location

DB2分页

戏子无情 提交于 2019-12-26 16:02:07
前言 最近在做一个DB2的项目,遇到分页处理的设计时开始犯难。以前一直采用MySQL作为项目数据库,其中的Limit关键字非常人性化,MySQL把分页的处理逻辑封装到了数据库的核心中,使得做查询设计时,根本不用过多的考虑分页的问题。 可是DB2却把这个难题推到了我们面前。其实不止DB2如此,很多大型的数据库例如MS SQL Server也不支持分页关键字。当然,DB2中提供了RowNumber函数,同Oracle有一些类似。有很多解决方案都是由此关键字得来的。 为了解决这个问题,互联网上提供了如下几个解决方案: 方案一:利用JDBC2的数据集。JDBC2数据集中提供了absolute方法,用来在查询的结果集中进行定位,数据集保存在内存中,你必须告诉JDBC你想定位的绝对位置,这个位置由你来计算。对于海量的数据集,这种方式效率并不高。 方案二:利用DB2自带的函数 ROWNUMBER() OVER(ORDER BY sort-key),这里的RowNumber函数是通过排序计算出来的行的顺序号。根据这个原理,可以先SELECT满足WHERE条件的所有记录,然后用ORDER BY排序,在行号的基础上,结合子查询的组合得出查询结果。例如: select * from ( select rownumber() over(order by foo.bar, foo.baz) as