package cn.tsjinrong.fastfile.util;

/**
* @ClassName: Page
* @Description: TODO(分页组件的父类,用来封装分页的 通用内容和逻辑)
* @author zhanghaiyang
* @date 2016年1月14日 下午12:37:55
* @Copyright © 2016上海通善互联网金融信息服务有限公司
*/
public class Page { // 用户输入的分页条件
private int currentPage = 1; // 当前页
private int pageSize = 15; // 每页最大行数 // 用于实现分页SQL的条件,是根据用户输入条件计算而来的
private int begin;
private int end; // 自动计算出的总行数
private int rows;
// 根据总行数计算总页数,然后将总页数输出给页面
private int totalPage; public int getRows() {
return rows;
} public void setRows(int rows) {
this.rows = rows;
} public int getTotalPage() {
// 根据总行数,计算总页数
if (rows % pageSize == 0) {
totalPage = rows / pageSize;
} else {
totalPage = rows / pageSize + 1;
}
return totalPage;
} public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
} public int getBegin() {
// 在mapper.xml使用begin属性时,对其进行计算
begin = (currentPage - 1) * pageSize;
return begin;
} public void setBegin(int begin) {
this.begin = begin;
} public int getEnd() {
// 在mapper.xml使用end属性时,对其进行计算
end = currentPage * pageSize + 1;
return end;
} public void setEnd(int end) {
this.end = end;
} public int getCurrentPage() {
return currentPage;
} public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
} public int getPageSize() {
return pageSize;
} public void setPageSize(int pageSize) {
this.pageSize = pageSize;
} } public ModelAndView findVideosByPage(HttpServletRequest request, HttpServletResponse response, FileProperties fp) { ModelAndView model = new ModelAndView("/video/video_list");
Map<String, Object> params = new HashMap<String, Object>(3);
if (StringUtils.isNotBlank(fp.getBusiId())) {
params.put("busiId", fp.getBusiId());
}
if (StringUtils.isNotBlank(fp.getApplyName())) {
params.put("applyName", fp.getApplyName());
}
if (fp.getApplyDateStart() != null && StringUtils.isNotBlank(fp.getApplyDateStart())) {
params.put("applyDateStart", DateUtil.parseDate(fp.getApplyDateStart()));
} else {
params.put("applyDateStart", DateUtil.addDay(new Date(), -7));
}
if (fp.getApplyDateEnd() != null && StringUtils.isNotBlank(fp.getApplyDateEnd())) {
params.put("applyDateEnd", DateUtil.parseDate(fp.getApplyDateEnd()));
} else {
params.put("applyDateEnd", DateUtil.format(new Date()));
}
fp.setRows(fastfileVideoService.selectRows(params));
model.addObject("fastfileVideoInfoPage", fp);
List<FastfileVideoInfo> fastfileVideoInfos = fastfileVideoService.selectByPage(fp);
model.addObject("fastfileVideoInfos", fastfileVideoInfos);
model.addObject("applyDateStart", DateUtil.format(DateUtil.addDay(new Date(), -7)));
model.addObject("applyDateEnd", DateUtil.format(new Date()));
return model;
} <select id="selectByPage" resultMap="BaseResultMap" parameterType="cn.tsjinrong.fastfile.util.FileProperties">
select
<include refid="Base_Column_List" />
from fastfile_video_info where 1=1
<if test="busiId != null and busiId !=''">
and busi_id = #{busiId,jdbcType=VARCHAR}
</if>
<if test="applyName != null and applyName !=''">
and apply_name=#{applyName,jdbcType=VARCHAR}
</if>
<if test="applyDateStart != null and applyDateStart !=''">
and apply_date &gt;= #{applyDateStart,jdbcType=DATE}
</if>
<if test="applyDateEnd != null and applyDateEnd !=''">
and apply_date &lt;= #{applyDateEnd,jdbcType=DATE}
</if>
and del_flag = 0
order by apply_date desc limit #{beginRow},#{pageSize}
</select>

MyBatis学习总结_12_Mybatis+Mysql分页查询的更多相关文章

  1. springboot结合mybatis使用pageHelper插件进行分页查询

    1.pom相关依赖引入 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  2. mysql 分页查询

    mysql,; : mysql,; -last. //如果只给定一个参数,它表示返回最大的记录行数目: mysql; 个记录行 ,n. 动态传参的分页查询 SELECT * FROM table LI ...

  3. mysql分页查询详解

    我们做的后端项目一般都会有admin管理端,当管理端将要展示数据的时候,就需要用到分页.所以分页的考查在面试中也相当多.在mysql中进行分页查询时,一般会使用limit查询,而且通常查询中都会使用o ...

  4. Java GUI+mysql+分页查询

    1.要求 : 创建一个学生信息管理数据库 2.实现分页查询 代码如下: a)学生实体类: /** * @author: Annie * @date:2016年6月23日 * @description: ...

  5. Mysql分页查询性能分析

    [PS:原文手打,转载说明出处,博客园] 前言 看过一堆的百度,最终还是自己做了一次实验,本文基于Mysql5.7.17版本,Mysql引擎为InnoDB,编码为utf8,排序规则为utf8_gene ...

  6. MySql分页查询慢|这里告诉你答案

    一.背景 我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量:select * from table where column=xxx order by xxx li ...

  7. MySQL分页查询性能优化

    当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点.下面简单说一下我知道的一些方 ...

  8. MySQL分页查询大数据量优化方法

    方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N适应场景: 适用于数据量较少的情况(元组百/千级)原因/缺点: ...

  9. mysql分页查询语法

    一.limit语法 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指 ...

随机推荐

  1. 软件工程随堂小作业——随机四则运算(C++)

    一.设计思路: 1.程序的主体部分是循环输出,次数即题目数目由用户输入: 2.三个整型变量+rand函数来实现随机数四则运算,一个变量代表加减乘除,另外两个用作运算数: 3.用户体验:题目分三列,排列 ...

  2. 结对开发:7-magic用户调研报告

    用户调研报告 班级   信1201-2班  学号   20122929     姓名  崔乐乐 项目名称:7-magic 调研时间: 2015/4/14 调研主题:7-magic游戏的用户需求度调研 ...

  3. 【Validate Binary Search Tree】cpp

    题目: Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is define ...

  4. java笔记之变量的存储方式

    1.java变量存储域 java变量的存储区域主要放在以下几个地方: (1)寄存器:可以说是最快的存储区,在C/C++中可以声明寄存器变量,但是在java中不能声明寄存器变量,只是编译器在编译时确定. ...

  5. 编译器手工开栈(hdu可以其他可以尝试)

    做题的时候经常遇到深度递归的,当然也可以改成非递归形式.如果写成递归形式会爆栈,所以可以用手工扩展栈. C++ (一般用C++提交,所以就推荐这种了) #pragma comment(linker, ...

  6. weiapi2.2 HelpPage自动生成接口说明文档和接口测试功能

    在开发Webapi项目时每写完一个方法时,是不是需要添加相应的功能说明和测试案例呢?为了更简单方便的写说明接口文档和接口测试HelpPage提供了一个方便的途径. 她的大致原理是:在编译时会生成.dl ...

  7. poj 2711 Leapin' Lizards && BZOJ 1066: [SCOI2007]蜥蜴 最大流

    题目链接:http://poj.org/problem?id=2711 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1066 Your p ...

  8. 【转载】让c++ 函数返回一个数组

    在c++中是不允许数组作为函数的返回值的 int [] someFunction( ); //ILLEGAL 要想实现函数返回一个数组,那返回对应数组里面类型的指针 you must return a ...

  9. mysql导出导入某张表

    一般表数据少的话都用图形界面了,看着比较方便. 如果表中数据比较多,用图形界面极容易卡死,这个时候就要用到命令行了. 用命令行导出导入大量数据还是比较快的,方法如下: 导出库db1中的表table1: ...

  10. Request/Server模式

    Request-------HTTP/SOAP----------Server Request模块只是Client的一小部分,Client还有HTML, Data(Text/JSON/HTML/XML ...