https://mybatis.plus/guide/interceptor.html
第一步配置Bean
@Configuration@MapperScan("scan.your.mapper.package")public class MybatisPlusConfig {/*** 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));return interceptor;}@Beanpublic ConfigurationCustomizer configurationCustomizer() {return configuration -> configuration.setUseDeprecatedExecutor(false);}}
Demo 演示
- Entity ```java package luban.admin.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.luban.base.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank; import java.io.Serializable;
/**
- 项目测试库
- *
- @author 米阳MeYoung
@since 2020-10-14 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value = “SysProject对象”, description = “项目测试库”) public class SysProject extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = “主键ID”) @TableId(value = “id”, type = IdType.AUTO) private Long id;
@NotBlank(message = “测试库名不能为空”) @ApiModelProperty(value = “项目测试库名”) @Length(max = 30, message = “测试库名不能操作30个字符!”) private String name;
@ApiModelProperty(value = “描述”) private String description;
@ApiModelProperty(value = “默认邮箱”) private String defaultEmail;
@ApiModelProperty(value = “git地址”) private String gitUrl;
@ApiModelProperty(value = “git分支名”) private String branchName;
@ApiModelProperty(value = “类型:1-普通项目,2-公共项目”) private Integer type;
@ApiModelProperty(value = “是否删除,0:未删除, 1:已删除”) private Boolean deleted;
}
2. MapperPage 参数必须放首个```javapackage luban.admin.mapper;import com.baomidou.mybatisplus.core.metadata.IPage;import org.apache.ibatis.annotations.Param;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import luban.admin.entity.SysProject;/*** @author 米阳MeYoung* @date 2020-10-14*/public interface SysProjectMapper extends BaseMapper<SysProject> {IPage<SysProject> listSysProject(IPage<SysProject> page, @Param("project") SysProject sysProject);}
- XML
需要注意, project.name 的project 必须跟Mapper 设置的@Param 一致
<!-- 通用查询结果列 --><sql id="Base_Column_List">id, name, description, create_user, create_time, update_user, update_time, default_email, git_url, branch_name, type, deleted</sql><select id="listSysProject" resultMap="BaseResultMap">select<include refid="Base_Column_List"/>from sys_project<where><if test="project.name !=null and project.name !=''">AND name like CONCAT('%',#{project.name},'%')</if><if test="project.createUser !=null and project.createUser !=''">AND create_user = #{project.createUser}</if></where></select>
Service
/*** 分页查询** @param page 页码* @param pageCount 每页显示数* @param sysProject SysProject* @return IPage<SysProject>*/IPage<SysProject> listSysProject(Integer page, Integer pageCount, SysProject sysProject);
ServiceImpl
@Overridepublic IPage<SysProject> listSysProject(Integer page, Integer pageCount,SysProject sysProject) {IPage<SysProject> wherePage = new Page<>(page, pageCount);return baseMapper.listSysProject(wherePage, sysProject);}
Contorller
@Log("name模糊查询仓库")@ApiOperation(value = "name模糊查询仓库")@GetMapping("name")public IPage<SysProject> findListByName(@RequestParam Integer page,@RequestParam Integer pageCount,@RequestParam String name) {SysProject sysProject = new SysProject();sysProject.setName(name);return sysProjectService.listSysProject(page, pageCount, sysProject);}
