Mybatis分页查询,及根据name模糊查询,时间查询

 分页拦截器依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.1</version>
</dependency>
 在对应的application.yml配置
#分页pageHelper
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true

代码示例

controller

 /**
     * 分页查询
     */
    @GetMapping("/page")
    public R select(Integer page,Integer pageSize,String name){
        return employeeeService.select(page,pageSize,name);
    }

 Service层

   public R select(Integer page, Integer pageSize, String name) {
        //构建分页拦截器
        PageHelper.startPage(page, pageSize);

           List<Employee> employeeList = employeeMapper.select(name);

        PageInfo<Employee> PageInfo = new PageInfo<>(employeeList);

        //返回值对象,这里的P类是根据前端要的数据专门写的类,。属性只有这四条
        Paging p = new Paging();
        p.setTotal(PageInfo.getTotal());//总条数
        p.setSize(PageInfo.getSize()); //每页显示条数
        p.setCurrent(PageInfo.getPageNum());//当前页码
        p.setRecords(employeeList);//被展示的数据集
        return R.success(p);

    }

dao层

   List<Employee> select(String name);

POJO类

@Data//这里用了小辣椒插件
public class Paging {
    private long total;

    private int current;

    private int size;

    private List records;
}

SQL语句

要注意的是,通过模糊查询的话,需要用以下的标准格式进行:

like concat('%', #{name}, '%')

    <select id="select" resultMap="Employee">
        select *
        from employee
        <where>
            <if test="name !=null and name !='' ">
                name like concat('%', #{name}, '%')
            </if>
        </where>

分页查询器的其他功能属性值,仅供了解

 private int pageNum;//当前页码
 private int pageSize;//设置每页多少条数据
private int size;//当前页有多少条数据
private int startRow;//当前页码第一条数据的
private int endRow;//当前页码的开始条
private int pages;//当前页码结束条
private int prePage;//上一页(页面链接使用)
private int nextPage;//下一页(页面链接使用)
private boolean isFirstPage;//是否为第一页
private boolean isLastPage;//是否为最后一页
private boolean hasPreviousPage;//是否有前一页
private boolean hasNextPage;//是否有下一页
private int navigatePages;//导航页码数(就是总共有多少页)
private int[] navigatepageNums;//导航页码数(就是总共有多少页),可以用来遍历
private int navigateFirstPage;//首页号
private int navigateLastPage;//尾页号

时间的查询,两个时间之间用between关键词

 <select id="paGing1" resultType="com.itheima.pojo.Order">
        select*
        from reggie_order
        <where>
            <if test="number !=null and number !='' ">
                number like concat('%',#{number},'%')
            </if>
            <if test="beginTime !=null and beginTime !='' ">
                and orderTime between #{beginTime}
            </if>
            <if test="endTime !=null and endTime !='' ">
                and #{endTime}
            </if>
        </where>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值