mybatis配置不同数据源

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。mybatis配置不同数据源,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

版本

  • springboot 2.1.6.release
  • mybatis-starter 2.3.0

yaml的写法调整

batis:
  db1:
    jdbcUrl: jdbc:mysql://localhost:3306/test
    username: test
    password: test
    driverClassName: com.mysql.cj.jdbc.Driver
    maximum-pool-size: 20
  db2:
    jdbcUrl: jdbc:mysql://localhost:3307/test
    username: test
    password: test
    driverClassName: com.mysql.cj.jdbc.Driver
    maximum-pool-size: 20
  db3:
  	jdbcUrl: jdbc:mysql://localhost:3308/test
    username: test
    password: test
    driverClassName: com.mysql.cj.jdbc.Driver
    maximum-pool-size: 20

mapper包

有几个数据源就设置几个软件包,如下:

  • com.test.mapper1
  • com.test.mapper2
  • com.test.mapper3

再在resource目录下新建mapper目录,有几个数据源就新建几个子目录,如下:

  • mapper/mapper1
  • mapper/mapper2
  • mapper/mapper3

config

有几个数据源就设置几个config,如下:

/**
 * 仅举一例,其他的照此配置即可
 */
@Configuration
@MapperScan(basePackages = "com.test.mapper1", sqlSessionFactoryRef = "mysqlSessionFactoryOne")
public class DbOneConfig extends MybatisConfig {

	@Bean
    @ConfigurationProperties(prefix = "batis.db1")
    public HikariConfig mysqlHikariConfigOne() {
        return new HikariConfig();
    }

    @Bean(name = "mysqlSessionFactoryOne")
    public SqlSessionFactory sqlSessionFactory(@Autowired @Qualifier("mysqlHikariConfigOne") HikariConfig hikariConfig) throws Exception {
        DataSource dataSource = new HikariDataSource(hikariConfig);
        super.setMapperLocation("classpath:mapper/mapper1/*.xml");
        return this.getSqlSessionFactory(dataSource);
    }
}

使用

在对应的mapper文件夹下写@Mapper文件即可,在service层没有区别,mybatis会把特性掩盖,使得上层调用就像仅有一个数据源一样。
但是在启动类@SpringBootApplication()里面,需要去掉mybatis自动配置:

@SpringBootApplication(exclude = {MybatisAutoConfiguration.class})
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/153501.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!