t1为mysql数据源,t2为sqlserver数据源
通过配置,使com.example.demo.mapper.mysql下MYSQL的Mapper与classpath:mapper/mysql/.xml形成映射。
com.example.demo.mapper.mssql下MSSQL的Mapper与classpath:mapper/mssql/.xml形成映射。
-
配置文件a’p’plication.properties
spring.datasource.t1.jdbc-url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC
spring.datasource.t1.username=root
spring.datasource.t1.password=xxxxx
spring.datasource.t1.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.t2.jdbc-url=jdbc:sqlserver://127.0.0.1:1433;Database=msssqltest spring.datasource.t2.username=sa spring.datasource.t2.password=xxxxx spring.datasource.t2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
-
配置Class
@Configuration
@MapperScan(basePackages = “com.example.demo.mapper.mysql”,sqlSessionFactoryRef = “s1SqlSessionFactory”) //关联com.example.demo.mapper.mysql的Mapper
public class Source1Config {/** * spring.datasource.t1的配置映射成DataSource source1 * @return */ @Bean(name = "source1") @ConfigurationProperties(prefix="spring.datasource.t1") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } /** * 使用source1 处理classpath*:mapper/mysql/*.xml * @param dataSource * @return * @throws Exception */ @Bean(name = "s1SqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("source1") DataSource dataSource) throws Exception { SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources("classpath*:mapper/mysql/*.xml")); return sessionFactoryBean.getObject(); } } @Configuration @MapperScan(basePackages = "com.example.demo.mapper.mssql",sqlSessionFactoryRef = "s2SqlSessionFactory") public class Source2Config { @Bean(name = "source2") @ConfigurationProperties(prefix="spring.datasource.t2") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "s2SqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("source2") DataSource dataSource) throws Exception { SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources("classpath*:mapper/mssql/*.xml")); return sessionFactoryBean.getObject(); } }