【Spring Boot】配置mybatis plus 分頁插件 total 為0 解決方案分享

網(wǎng)上爬坑一上午 很多沒說明到位 分享下自己解決過程.

有可能出錯地點(diǎn):

1.spring boot 使用 @Configuration 注解 java類 配置方式 沒設(shè)置上插件 interceptor
2.沒設(shè)置數(shù)據(jù)庫方言 DialectType
3.引入了多個分頁插件
4.代碼里面重復(fù)實(shí)例化了多個page

@Configuration
@MapperScan("com.**.mapper")
@EnableTransactionManagement
public class MybatisDataSourceConfig {
    private static final Logger log = LoggerFactory.getLogger(MybatisDataSourceConfig.class);

    private static final String MAPPER_LOCATION = "classpath*:mybatis/**/*.xml";

    @Value("${mybatis-plus.global-config.dbColumnUnderline}")
    private Boolean dbColumnUnderline;
    @Autowired
    @Qualifier("mybatisDataSource")
    private DataSource mybatisDataSource;

    @Bean(name = "mybatisTransactionManager")
    public DataSourceTransactionManager masterTransactionManager() {
        return new DataSourceTransactionManager(mybatisDataSource);
    }


    @Bean(name = "mybatisSessionFactory")
    public SqlSessionFactory mybatisSessionFactory() throws Exception {
        //解決查詢返回結(jié)果含null沒有對應(yīng)字段值問題     
        MybatisConfiguration configuration = new MybatisConfiguration();
        configuration.setCallSettersOnNulls(true);
        //配置slq打印日志
        configuration.setLogImpl(org.apache.ibatis.logging.stdout.StdOutImpl.class);
        //峰駝轉(zhuǎn)換
        configuration.setMapUnderscoreToCamelCase(dbColumnUnderline);
        //注意把SqlSessionFactory 換成mybitaisPlus的 否則使用自帶方法會報(bào)錯
        MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
        sessionFactory.setDataSource(mybatisDataSource);
        //mybatis對應(yīng)spring boot環(huán)境的配置
        sessionFactory.setVfs(SpringBootVFS.class);
        //xml掃描路徑
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MybatisDataSourceConfig.MAPPER_LOCATION));
        //配置實(shí)體包路徑
        sessionFactory.setTypeAliasesPackage("com.**.entity");
        //配置自定義類型轉(zhuǎn)換 類包路徑
        sessionFactory.setTypeHandlersPackage("com.**.convert");
        //添加分頁插件 注意要添加到插件很多沒說明這一步
        Interceptor[] interceptor = {paginationInterceptor()};
        sessionFactory.setPlugins(interceptor);
        sessionFactory.setConfiguration(configuration);
        return sessionFactory.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate() throws Exception {
        return new SqlSessionTemplate(mybatisSessionFactory());
    }


    /**
     * 分頁插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        paginationInterceptor.setDialectType("mysql");
        // paginationInterceptor.setLimit(你的最大單頁限制數(shù)量,默認(rèn) 500 條,小于 0 如 -1 不受限制);
        return paginationInterceptor;
    }

成功調(diào)用后sql 語句會添加 分頁部分


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容