1.引入依赖
<!-- mysql 依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.配置数据源
spring:
datasource:
db1:
driver-class-name: dm.jdbc.driver.DmDriver
jdbc-url: jdbc:ip:port?useUnicode=true&useSSL=false&characterEncoding=utf8
username:
password:
db2:
driver-class-name: dm.jdbc.driver.DmDriver
jdbc-url: jdbc:ip:port?useUnicode=true&useSSL=false&characterEncoding=utf8
username:
password:
3.配置mybatis
mybatis:
# 实体扫描,多个package用逗号或者分号分隔
type-aliases-package: com.entity
mapper-locations: classpath:/mapper/*
#输入日志
logging:
level:
com:
mapper:
debug
4.配置数据源
@Configuration
@MapperScan(basePackages= {"com.mapper.db1"},sqlSessionFactoryRef="db1SqlSessionFactory")
public class DataSourceDb1Config {
/**
* 数据源配置
* @return
*/
@Bean(name="db1DataSource")
@ConfigurationProperties(prefix="spring.datasource.db1")
@Primary
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
/**
* 注入SqlSessionFactory
* @param dataSource
* @return
* @throws Exception
*/
@Bean(name="db1SqlSessionFactory")
@Primary
public SqlSessionFactory testSqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean=new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
return bean.getObject();
}
/**
* 注入事务
* @param dataSource
* @return
*/
@Bean(name="db1TransactionManager")
@Primary
public DataSourceTransactionManager testTransactionManager(@Qualifier("db1DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* 注入管理SqlSession
*/
@Bean(name="db1SqlSessionTemplate")
@Primary
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("db1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
@Configuration
@MapperScan(basePackages= {"com.mapper.db2"},sqlSessionFactoryRef="db2SqlSessionFactory")
public class DataSourceDb2Config {
/**
* 数据源配置
* @return
*/
@Bean(name="db2DataSource")
@ConfigurationProperties(prefix="spring.datasource.db2")
@Primary
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
/**
* 注入SqlSessionFactory
* @param dataSource
* @return
* @throws Exception
*/
@Bean(name="db2SqlSessionFactory")
@Primary
public SqlSessionFactory testSqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean=new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
return bean.getObject();
}
/**
* 注入事务
* @param dataSource
* @return
*/
@Bean(name="db2TransactionManager")
@Primary
public DataSourceTransactionManager testTransactionManager(@Qualifier("db2DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* 注入管理SqlSession
*/
@Bean(name="db2SqlSessionTemplate")
@Primary
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("db2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
5.mapper接口要与resources的xml文件夹位置相对应上