zoukankan      html  css  js  c++  java
  • MyBatis学习总结_12_Mybatis+Mysql分页查询

    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>
  • 相关阅读:
    WebApi集成Grpc客户端
    【Oracle】AWR报告生成
    ora-7445 导致 ora-600 ,oracle数据库 11gR2崩溃
    .NET的并发编程(TPL编程)是什么?
    打算写一些Netty的文章了,先聊聊为什么要学习Netty
    2020实战复盘:如何从0到1搭建数据传输平台产品DTS?
    DevOps,CI,CD,自动化简单介绍
    【python刷题】二叉树递归-非递归遍历-序列-反序列化
    python正则表达式-匹配用符号分割的多个字符串
    用 Flutter 搭建标签+导航框架
  • 原文地址:https://www.cnblogs.com/kluan/p/5934618.html
Copyright © 2011-2022 走看看