1、配置单数据源
1、pom.xml文件中引入jar包
<!-- MySQL的jdbc驱动包 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- MySQL的jdbc驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
在application.properties文件中配置数据源,如下:
2、配置多个数据源
1.先在application.properties文件中配置三个数据源
2、接下来在Java代码中配置每个数据源
userdb数据源配置代码如下,其他两个数据源类似,名称不同而已
package com.xzq.springboot.config;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@Configuration // == xml
@MapperScan(basePackages = {"com.bjpowernode.springboot.mapper.users"}, sqlSessionFactoryRef = "userdbSqlSessionFactory")
public class UserDBDataSourceConfig {
/**
* 配置一个userdb数据源的bean
*
* @return
*/
@Bean(name="userdbDataSource")
@ConfigurationProperties(prefix = "spring.datasource.userdb")
public DataSource userdbDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name="userdbSqlSessionFactory")
public SqlSessionFactory userdbSqlSessionFactory(@Qualifier("userdbDataSource") DataSource userdbDataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(userdbDataSource);
return sqlSessionFactoryBean.getObject();
}
@Bean(name="userdbSqlSessionTemplate")
public SqlSessionTemplate userdbSqlSessionTemplate(@Qualifier("userdbSqlSessionFactory") SqlSessionFactory userdbSqlSessionFactory) {
return new SqlSessionTemplate(userdbSqlSessionFactory);
}
/**
* 如果需要对此数据源进行事务管理,需要配置该事务管理器
*
* @param userdbDataSource
* @return
*/
@Bean
public DataSourceTransactionManager userdbDataSourceTransactionManager(@Qualifier("userdbDataSource") DataSource userdbDataSource) {
return new DataSourceTransactionManager(userdbDataSource);
}
}
数据库以及通过mycat进行了分库发表,代码里可以直接操作对应的表。