Spring Boot 2.0.0 集成分页工具 PageHelper 5.1.3 填坑

本文是动态多数据源集成PageHelper分页工具的填坑记录
动态多数据源见SpringBoot+MyBatis 动态数据源(内附项目地址)


看了很多资料,都是用xml的方式进行配置的,感觉比较繁琐。
那这里我在方法中去进行配置
早起的4.0版本是这样配置的

    PageHelper pageHelper = new PageHelper();
    Properties properties = new Properties();
    properties.setProperty("dialect", "mysql");
    properties.setProperty("reasonable", "true");
    properties.setProperty("supportMethodsArguments", "true");
    properties.setProperty("pageSizeZero", "true");
    pageHelper.setProperties(properties);
    sqlSessionFactoryBean.setPlugins(new Interceptor[]{pageHelper});

那在4.0之后的版本进行了更新,dialect改成了helperDialect,而且也可以不写,PageHelper会自动识别连接的数据库类型。
同时org.apache.ibatis.plugin.Interceptor的参数也不能再传pageHelper了,提示是类型不匹配
interceptor
那我们得自己来个新的写法了

@Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean() throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dynamicDataSource());

        //PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        //properties.setProperty("helperDialect", "mysql");
        properties.setProperty("reasonable", "true");
        properties.setProperty("supportMethodsArguments", "true");
        properties.setProperty("pageSizeZero", "true");
        //pageHelper.setProperties(properties);

        PageInterceptor interceptor = new PageInterceptor();
        interceptor.setProperties(properties);

        sqlSessionFactoryBean.setPlugins(new Interceptor[]{interceptor});

        sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*Mapper.xml"));
        return sqlSessionFactoryBean;
    }

最后就可以使用了,例:

    @ApiOperation(value="获取用户列表",notes = "获取所有用户列表", httpMethod = "GET")
    @RequestMapping("/getUsers")
    public ResultData getUsers() {
        PageHelper.startPage(1,3);
        ResultData resultData = new ResultData();
        List<ResultUser> list = userServiceImpl.getAllUsers();
        resultData.setCount(list.size());
        resultData.setData(list);
        return resultData;
    }

猜你喜欢

转载自blog.csdn.net/u012138272/article/details/80011356