
Mybatis-plus 多数据源 根据数据库自动调整数据库方言
首先定义一个 分页拦截器,重写父类 findIDialect 方法,通过 JdbcUtils.getDbType(executor)然后将自动分页拦截器 AutoPaginationInnerInterceptor 添加到 Mybatis的拦截器中,就OK了。得到当前sql 执行的数据源类型,然后通过方言工厂动态的获取 数据源方言;
·
package com.xxx.xxx.config;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.DialectFactory;
import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.IDialect;
import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
import org.apache.ibatis.executor.Executor;
/**
* <p>
* 自动分页拦截器,自动动态调整数据库方言
* </p>
*
* @author zhoujk
* @since 2023-8-1
*/
public class AutoPaginationInnerInterceptor extends PaginationInnerInterceptor {
@Override
protected IDialect findIDialect(Executor executor) {
return DialectFactory.getDialect(JdbcUtils.getDbType(executor));
}
}
首先定义一个 分页拦截器,重写父类 findIDialect 方法,通过 JdbcUtils.getDbType(executor)
得到当前sql 执行的数据源类型,然后通过方言工厂动态的获取 数据源方言;
package com.xxx.xxx.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import icu.mhb.mybatisplus.plugln.injector.JoinDefaultSqlInjector;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* MyBatis拦截器
*/
@Configuration
@EnableTransactionManagement
@MapperScan({"com.xxx.xxx.*.mapper","com.xxx.xxx.dao","com.xxx.xxx.mapper"})
public class MybatisPlusConfig extends JoinDefaultSqlInjector {
/**
* 分页插件
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//多数据源 根据数据库类型自动调整数据库方言
interceptor.addInnerInterceptor(new AutoPaginationInnerInterceptor());
return interceptor;
}
}
然后将自动分页拦截器 AutoPaginationInnerInterceptor 添加到 Mybatis的拦截器中,就OK了
更多推荐
所有评论(0)