mybatis多环境配置
项目信息:
1.配置文件信息:
#db1
spring.datasource.db1.url=jdbc:mysql://127.0.0.1:3306/bg_resources?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
spring.datasource.db1.username=root
spring.datasource.db1.password=123456
spring.datasource.db1.driver-class-name=com.mysql.jdbc.Driver
#db2
spring.datasource.db2.url=jdbc:mysql://127.0.0.1:3306/ssm?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
spring.datasource.db2.username=root
spring.datasource.db2.password=123456
spring.datasource.db2.driver-class-name=com.mysql.jdbc.Driver
2.修改启动类(JhReportApplication):
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
3.DataSourceConfig内容:
/**
注入两个数据源信息
*/
@Configuration
public class DataSourceConfig {
@Autowired
Environment env;
@Bean(name = "ds1")
public DataSource dataSource1() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(env.getProperty("spring.datasource.db1.url"));
dataSource.setUsername(env.getProperty("spring.datasource.db1.username"));
dataSource.setPassword(env.getProperty("spring.datasource.db1.password"));
dataSource.setDriverClassName(env.getProperty("spring.datasource.db1.driver-class-name"));
return dataSource;
}
@Bean(name = "ds2")
public DataSource dataSource2() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(env.getProperty("spring.datasource.db2.url"));
dataSource.setUsername(env.getProperty("spring.datasource.db2.username"));
dataSource.setPassword(env.getProperty("spring.datasource.db2.password"));
dataSource.setDriverClassName(env.getProperty("spring.datasource.db2.driver-class-name"));
return dataSource;
}
}
4.MybatisDb1Config内容:
@Configuration
@MapperScan(basePackages = {"com.channelsoft.jh_report.dao.db1"}, sqlSessionFactoryRef = "sqlSessionFactory1")
public class MybatisDb1Config {
@Qualifier("ds1")
@Autowired
DataSource dataSource;
@Bean(name = "sqlSessionFactory1")
public SqlSessionFactory sqlSessionFactory1() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
//mybatis的sql语句是写在xml里面的才需要,如果是使用注解就不需要
// PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
//factoryBean.setMapperLocations(resolver.getResources("classpath:mappers/db1/*.xml"));
// factoryBean.setMapperLocations(resolver.getResources("classpath:mapper/db1/*.xml"));
factoryBean.setTypeAliasesPackage("com.channelsoft.jh_report.po");
return factoryBean.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplate1() throws Exception {
SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory1()); // 使用上面配置的Factory
return template;
}
}
5.MybatisDb2Config内容:
@Configuration
@MapperScan(basePackages = {"com.channelsoft.jh_report.dao.db2"}, sqlSessionFactoryRef = "sqlSessionFactory2")
public class MybatisDb2Config {
@Qualifier("ds2")
@Autowired
DataSource dataSource;
@Bean(name = "sqlSessionFactory2")
public SqlSessionFactory sqlSessionFactory2() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
// PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
// factoryBean.setMapperLocations(resolver.getResources("classpath:mappers/db2/*.xml"));
// factoryBean.setMapperLocations(resolver.getResources("classpath:mapper/db2/*.xml"));
factoryBean.setTypeAliasesPackage("com.channelsoft.jh_report.po");
return factoryBean.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplate2() throws Exception {
SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory2());
return template;
}
}
作者:繁星***满天
来源链接:https://blog.csdn.net/qq_36567480/article/details/95356796
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。