mybatis分页配置

配置类

package com.xxxx.server.config;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Mybaits分页配置
 */
@Configuration
public class MyBatisPlusConfig {

	//在查询时会拦截sql语句并把分页语句加上
	@Bean
	public PaginationInterceptor paginationInterceptor(){
		return new PaginationInterceptor();
	}

}

实体封装

package com.xxxx.server.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 分页公共返回对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RespPageBean {
	/**
	 * 总条数
	 */
	private Long total;
	/**
	 * 数据list
	 */
	private List<?> data;

}

controller

	@GetMapping("/")
	public RespPageBean getEmployee(@RequestParam(defaultValue = "1") Integer currentPage,
	                                @RequestParam(defaultValue = "10") Integer size,
	                                Employee employee,
	                                LocalDate[] beginDateScope){
		return employeeService.getEmployeeByPage(currentPage,size,employee,beginDateScope);
	}

service

	@Override
	public RespPageBean getEmployeeByPage(Integer currentPage, Integer size, Employee employee,
	                                      LocalDate[] beginDateScope) {
		//开启分页  currentPage:当前页   size:每页最大条数
		Page<Employee> page = new Page<>(currentPage, size);
		IPage<Employee> employeeByPage = employeeMapper.getEmployeeByPage(page, employee, beginDateScope);
		RespPageBean respPageBean = new RespPageBean(employeeByPage.getTotal(), employeeByPage.getRecords());
		return respPageBean;
	}

mapper

IPage<Employee> getEmployeeByPage(Page<Employee> page, @Param("employee") Employee employee,
	                                  @Param("beginDateScope") LocalDate[] beginDateScope);

sql语句

<resultMap id="EmployeeInfo" type="com.xxxx.server.pojo.Employee" extends="BaseResultMap">
        <association property="nation" javaType="com.xxxx.server.pojo.Nation">
            <id column="nid" property="id" />
            <result column="nname" property="name" />
        </association>
        <association property="politicsStatus" javaType="com.xxxx.server.pojo.PoliticsStatus">
            <id column="pid" property="id" />
            <result column="pname" property="name" />
        </association>
        <association property="department" javaType="com.xxxx.server.pojo.Department">
            <id column="did" property="id" />
            <result column="dname" property="name" />
        </association>
        <association property="joblevel" javaType="com.xxxx.server.pojo.Joblevel">
            <id column="jid" property="id" />
            <result column="jname" property="name" />
        </association>
        <association property="position" javaType="com.xxxx.server.pojo.Position">
            <id column="posid" property="id" />
            <result column="posname" property="name" />
        </association>
    </resultMap>

<!-- 获取所有员工(分页) -->
	<select id="getEmployeeByPage" resultMap="EmployeeInfo">
		SELECT
		e.*,
		n.id AS nid,
		n.`name` AS nname,
		p.id AS pid,
		p.`name` AS pname,
		d.id AS did,
		d.`name` AS dname,
		j.id AS jid,
		j.`name` AS jname,
		pos.id AS posid,
		pos.`name` AS posname
		FROM
		t_employee e,
		t_nation n,
		t_politics_status p,
		t_department d,
		t_joblevel j,
		t_position pos
		WHERE
		e.nationId = n.id
		AND e.politicId = p.id
		AND e.departmentId = d.id
		AND e.jobLevelId = j.id
		AND e.posId = pos.id
		<if test="null!=employee.name and ''!=employee.name">
			AND e.`name` LIKE CONCAT( '%', #{employee.name}, '%' )
		</if>
		<if test="null!=employee.politicId">
			AND e.politicId = #{employee.politicId}
		</if>
        <if test="null!=employee.nationId">
            AND e.nationId = #{employee.nationId}
        </if>
        <if test="null!=employee.jobLevelId">
            AND e.jobLevelId = #{employee.jobLevelId}
        </if>
        <if test="null!=employee.posId">
            AND e.posId = #{employee.posId}
        </if>
        <if test="null!=employee.engageForm and ''!=employee.engageForm">
            AND e.engageForm = #{employee.engageForm}
        </if>
        <if test="null!=employee.departmentId">
            AND e.departmentId = #{employee.departmentId}
        </if>
        <if test="null!=beginDateScope and 2==beginDateScope.length">
            AND e.beginDate BETWEEN #{beginDateScope[0]} AND #{beginDateScope[1]}
        </if>
		ORDER BY
		e.id
	</select>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值