首先yml数据源配置
spring:
datasource:
db1:
url: jdbc:mysql://localhost/test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123
db2:
url: jdbc:mysql://localhost/uu?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123
然后关闭boot自动加载yml的配置
//关闭boot自带的加载配置 yml配置
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class
})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
关闭了加载配置 自己配一个sqlSessionTemplate执行数据层(两份 注意名称)
@Configuration
@MapperScan(basePackages ="com.mybatistest.demo.db1.mapper",sqlSessionTemplateRef = "userSqlSessionTemplate")
public class Data1Config {
@Value("${spring.datasource.db1.url}")
private String jdbcUrl;
@Value("${spring.datasource.db1.username}")
private String username;
@Value("${spring.datasource.db1.password}")
private String password;
@Bean("userDataSource")
@Primary
public HikariDataSource dataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl(jdbcUrl);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setConnectionInitSql("SET NAMES utf8mb4");
return dataSource;
}
@Bean("userSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("userDataSource") DataSource dataSource) throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
return sessionFactory.getObject();
}
@Bean("userTransactionManager")
@Primary
public DataSourceTransactionManager transactionManager(@Qualifier("userDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean("userSqlSessionTemplate")
@Primary
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("userSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
mapper上添加要使用的sqlSession模板注解
@Qualifier("userSqlSessionTemplate")
public interface UserMapper{
@Select("select * from user where id = #{id}")
User queryUserById(Integer id);
}
xml形式需要添加如下配置(config配置中)
@Bean("userSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("userDataSource") DataSource dataSource) throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
// bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/db1/*.xml"));
return sessionFactory.getObject();
}
2997

被折叠的 条评论
为什么被折叠?



