1、先配置application.xxx的文件,配置多个数据源连接参数,有几个数据库就配置几个
可以看到除了前缀不一样,其余没什么区别,前缀就是为了区分数据源
2、去找你的项目中的config文件,比如我的项目中是下面两个
我的目录文件
3、进入编写配置文件
MallConfig
@Configuration @MapperScan(basePackages = {"你自己项目扫描mapper的路径"}, sqlSessionTemplateRef = "mallSqlSessionTemplate") public class MallConfig { @Bean(name = "mallDataSource") @Primary //必须加此注解,不然报错,下一个类则不需要添加 @ConfigurationProperties(prefix = "mysql.datasource") // prefix值必须是application.properteis中对应属性的前缀 public DataSource mallDataSource() { return DataSourceBuilder.create().build(); } @Bean @Primary public SqlSessionFactory mallSqlSessionFactory(@Qualifier("mallDataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); //添加XML目录 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); try { bean.setMapperLocations(resolver.getResources("classpath*:/mapper/mall/*.xml")); return bean.getObject(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } @Bean @Primary public SqlSessionTemplate mallSqlSessionTemplate(@Qualifier("mallSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); // 使用上面配置的Factory return template; } } |
MemberConfig
@Configuration @MapperScan(basePackages = {"同上"}, sqlSessionTemplateRef = "memberSqlSessionTemplate") public class MemberConfig { @Bean(name = "memberDataSource") @ConfigurationProperties(prefix = "member.datasource") // prefix值必须是application.properteis中对应属性的前缀 public DataSource memberDataSource() { return DataSourceBuilder.create().build(); } @Bean public SqlSessionFactory memberSqlSessionFactory(@Qualifier("memberDataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); //添加XML目录 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); try { bean.setMapperLocations(resolver.getResources("classpath*:/mapper/member/*.xml")); return bean.getObject(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } @Bean public SqlSessionTemplate memberSqlSessionTemplate(@Qualifier("memberSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); // 使用上面配置的Factory return template; } } |
注意:第一个配置文件中出现了@Primary那么后面的配置文件就不可以出现了
4、在mapper.xml文件的目录下新建对应的文件
5、按理来说就可以访问到了,虽然有时候代码不讲理