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. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  2. 【转】MyBatis学习总结(一)——MyBatis快速入门

    [转]MyBatis学习总结(一)——MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC ...

  3. 【转】MyBatis学习总结(七)——Mybatis缓存

    [转]MyBatis学习总结(七)——Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualC ...

  4. 转:MyBatis学习总结(Mybatis总结精华文章)

    http://www.cnblogs.com/xdp-gacl/tag/MyBatis%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/ 当前标签: MyBatis学习总结   ...

  5. Mybatis学习系列(五)关联查询

    前面几节的示例基本都是一些单表查询,实际项目中,经常用到关联表的查询,比如一对一,一对多等情况.在Java实体对象中,一对一和一对多可是使用包装对象解决,属性使用List或者Set来实现,在mybat ...

  6. Mybatis学习笔记12 - 动态sql之choose(when otherwise)标签

    choose (when, otherwise):分支选择:带了break的swtich-case 示例代码: 接口定义: package com.mybatis.dao; import com.my ...

  7. MyBatis 学习记录5 MyBatis的二级缓存

    主题 之前学习了一下MyBatis的一级缓存,主要涉及到BaseExecutor这个类. 现在准备学习记录下MyBatis二级缓存. 配置二级缓存与初始化发生的事情 首先二级缓存默认是不开启的,需要自 ...

  8. MyBatis学习总结(一)——MyBatis快速入门(转载)

    本文转载自http://www.cnblogs.com/jpf-java/p/6013537.html MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了 ...

  9. MyBatis学习总结(一)——MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  10. MyBatis学习笔记(一)——MyBatis快速入门

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优 ...

随机推荐

  1. HDU 4572 Bottles Arrangement

    具体的证明:点击打开链接 我的想法: 要想保证题目所说 构造最小行的和,仅仅能是这样的情况 .....      m-3  m-2  m-1  m    |   m  m-1  m-2  m-3   ...

  2. 异步Ajax

    Ajax异步刷新应用在Web开发中经常用到,在过去WebForm中通常是使用JQuery和一般处理程序或者aspx页面来实现: 在MVC中,虽然依然可以使用一般处理程序,但是一般还是通过在Contro ...

  3. Hadoop的单节点集群详细启动步骤

    见,如下博客 hadoop-2.2.0.tar.gz的伪分布集群环境搭建(单节点) 很简单,不多赘述.

  4. OpenGL编程逐步深入(二)在窗口中显示一个点

    准备知识 在本文中我们将会接触到OpenGl的扩展库GLEW( OpenGL Extension Wrangler Library),GLEW可以帮助我们处理OpenGl中繁琐的扩展管理.一旦初始化后 ...

  5. Postfix邮件系统安装配置视频

    Postfix邮件系统安装配置视频(文字资料详见linux企业应用案例精解),全部视频分为四个部分,详情如下: http://115.com/file/be9j4dsj#postfix-1.rar h ...

  6. tomcat7 bootstrap

    tomcat7 bootstrap http://t5crambing.iteye.com/blog/1923636

  7. java 返回json格式的数据

    1 阿里巴巴的fastjson import com.alibaba.fastjson.JSON; 使用的时候 JSON.toJSON(list); 2  Gson 解析json数据 import c ...

  8. 如何把本地的项目推送到github上面去

    前题:本地已经建好了项目,但电脑上没有安装git  (windows 系统) 1.首页从网上下载git 并安装. 2.进入项目所在的文件夹,右键鼠标 3.新建.gitignore文件 touch .g ...

  9. spring在web.xml中的配置

    在实际项目中spring的配置文件applicationcontext.xml是通过spring提供的加载机制,自动加载的容器中去,在web项目中,配置文件加载到web容器中进行解析,目前,sprin ...

  10. .net运行项目的几种形式

    1.通过配置IIS 2.通过VS运行项目 3.发布到测试服务器 不同于PHP的发布,直接把相关的类文件传入ftp即可. .net的发布是编译好dll文件,将dll文件传入即可. 比如改了某个文件,就把 ...