MyBatis的核心技术掌握---分页功能,详细易懂(下)

目录

一.前言

二.MyBatis 的分页

三.MyBatis 的特殊字符处理


一.前言

        继上篇MyBatis 的文章,我们继续来学习MyBatis吧!!! 上篇的博客链接:           http://t.csdn.cn/5iUEDhttp://t.csdn.cn/5iUED        接下来进入我们的正文吧!!!

二.MyBatis 的分页

         导入pom文件,分页插件,需要借助这些来完成分页

pom.xml配置文件:

  
        
            com.github.pagehelper
            pagehelper
            5.1.2
        

Mybatis.cfg.xml配置拦截器:

<plugins>
    
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
    plugin>
plugins>

配置分页工具类:

package com.zking.Utils;

import java.io.Serializable;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

public class PageBean implements Serializable {

	private static final long serialVersionUID = 2422581023658455731L;

	//页码
	private int page=1;
	//每页显示记录数
	private int rows=10;
	//总记录数
	private int total=0;
	//是否分页
	private boolean isPagination=true;
	//上一次的请求路径
	private String url;
	//获取所有的请求参数
	private Map map;
	
	public PageBean() {
		super();
	}
	
	//设置请求参数
	public void setRequest(HttpServletRequest req) {
		String page=req.getParameter("page");
		String rows=req.getParameter("rows");
		String pagination=req.getParameter("pagination");
		this.setPage(page);
		this.setRows(rows);
		this.setPagination(pagination);
		this.url=req.getContextPath()+req.getServletPath();
		this.map=req.getParameterMap();
	}
	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public Map getMap() {
		return map;
	}

	public void setMap(Map map) {
		this.map = map;
	}

	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}
	
	public void setPage(String page) {
		if(null!=page&&!"".equals(page.trim()))
			this.page = Integer.parseInt(page);
	}

	public int getRows() {
		return rows;
	}

	public void setRows(int rows) {
		this.rows = rows;
	}
	
	public void setRows(String rows) {
		if(null!=rows&&!"".equals(rows.trim()))
			this.rows = Integer.parseInt(rows);
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}
	
	public void setTotal(String total) {
		this.total = Integer.parseInt(total);
	}

	public boolean isPagination() {
		return isPagination;
	}
	
	public void setPagination(boolean isPagination) {
		this.isPagination = isPagination;
	}
	
	public void setPagination(String isPagination) {
		if(null!=isPagination&&!"".equals(isPagination.trim()))
			this.isPagination = Boolean.parseBoolean(isPagination);
	}
	
	/**
	 * 获取分页起始标记位置
	 * @return
	 */
	public int getStartIndex() {
		//(当前页码-1)*显示记录数
		return (this.getPage()-1)*this.rows;
	}
	
	/**
	 * 末页
	 * @return
	 */
	public int getMaxPage() {
		int totalpage=this.total/this.rows;
		if(this.total%this.rows!=0)
			totalpage++;
		return totalpage;
	}
	
	/**
	 * 下一页
	 * @return
	 */
	public int getNextPage() {
		int nextPage=this.page+1;
		if(this.page>=this.getMaxPage())
			nextPage=this.getMaxPage();
		return nextPage;
	}
	
	/**
	 * 上一页
	 * @return
	 */
	public int getPreivousPage() {
		int previousPage=this.page-1;
		if(previousPage<1)
			previousPage=1;
		return previousPage;
	}

	@Override
	public String toString() {
		return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", isPagination=" + isPagination
				+ "]";
	}
}

        Mapper.xml文件:        MyBatis的核心技术掌握---分页功能,详细易懂(下)_第1张图片

         测试:

MyBatis的核心技术掌握---分页功能,详细易懂(下)_第2张图片

三.MyBatis 的特殊字符处理

        要创建一个Dto包,这个是用来传参数的,比如还有一些像:pojo/entity/model 是用来放实体类的VO--view object 是视图对象,是用来展示 java.util.Map还有就是Dto 是用来接受参数的。

Dto 包,来接受分页的开始条目和结束条目的参数:

package com.zking.dto;

import com.zking.model.Book;

/**
 * @author yinzi
 * @create 2023-08-24 15:11
 */
public class BookDto extends Book {

    private float min;
    private float max;

    public float getMin() {
        return min;
    }

    public void setMin(float min) {
        this.min = min;
    }

    public float getMax() {
        return max;
    }

    public void setMax(float max) {
        this.max = max;
    }


}

        xml文件:

MyBatis的核心技术掌握---分页功能,详细易懂(下)_第3张图片

 测试:

MyBatis的核心技术掌握---分页功能,详细易懂(下)_第4张图片

 总结:

        如果在sql语句中碰到大于,小于符号,就需要像上面那样用 包裹,或者上面那样也可这样替换:price > #{min} and price < #{max}

你可能感兴趣的:(mybatis,spring,java,ide,intellij,idea)