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;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章