#Mybaties-Plus踩坑日记(20181206)

公司项目因为响应时间的问题,所以第二次迭代决定改用框架,之前的hibenate改成了mybaties-plus,鉴于之前没有用过这个插件,所以这边做个日记记录一下平常的坑,mybatis-puls和之前用的mybaties差不多,但是自带了许多插件,今天在分页的时候遇到了一些坑,做些记录:
1、springboot注入方式

//Spring boot方式
	@EnableTransactionManagement
	@Configuration
	@MapperScan(basePackages = {"com.paoyou.oas.appuser.mybatis.*.dao"})
	public class MybatisPlusConfig {
	
	    /**
	     * 分页插件
	     */
	    @Bean
	    public PaginationInterceptor paginationInterceptor() {
	        return new PaginationInterceptor();
	    }
	}

2、mapper文件入参不再使用实体,而是使用苞米豆提供的page,里面有一系列参数用来支持分页,实体列表为里面的records列表

public interface UserMapper{//可以继承或者不继承BaseMapper
   	    /**
   	     * 
   	     * 查询 : 根据state状态查询用户列表,分页显示
   	     * 注意!!: 如果入参是有多个,需要加注解指定参数名才能在xml中取值
   	     * 
   	     *
        * @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位(你可以继承Page实现自己的分页对象)
	     * @param state 状态
	     * @return 分页对象
	     */
	    IPage selectPageVo(Page page, @Param("state") Integer state);
	}
	
	 * 
public class Page implements IPage {

    private static final long serialVersionUID = 8545996863226528798L;

    /**
     * 查询数据列表
     */
    private List records = Collections.emptyList();
    /**
     * 总数,当 total 不为 0 时分页插件不会进行 count 查询
     */
    private long total = 0;
    /**
     * 每页显示条数,默认 10
     */
    private long size = 10;
    /**
     * 当前页
     */
    private long current = 1;

今天的一个坑是在我调用mapper中selectPageVo方法时,因为之前我用的是@Select注解开发,但是mybaties-plus的分页插件似乎只支持在mapper的xml文件中进行sql书写,导致我查询出来的结果封装page时报错。
错误的使用方式:使用注解开发

/**
 * 

* Mapper 接口 *

* * @author wangt * @since 2018-12-03 */ public interface TbUsersMapper extends BaseMapper { @Select("select * from tb_users where delete_flag=0 and work_state=1 order by id asc") IPage selectPageVo(Page page); }

正确的使用方式:在xml文件中书写SQL



	

因为是自己想太多,没有按照官方给的手册进行,吸取一个教训

你可能感兴趣的:(#Mybaties-Plus踩坑日记(20181206))