Spring-boot+Durid+mybatis的多数据源集成方案
1、创建两个数据库,一个数据库名为ideadb,作为主数据库,负责数据的插入和更新操作,另一个数据库为ideadb-r为从数据库,只负责数据的读取操作。提示:可以通过mysqldump实现数据库的同步复制


3、创建数据源配置类DSConfig,实现多数据源的初始化操作,在该类中构建了两个数据源bean对象masterDS和slaveDS;package fantasy.datasource;import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;/** * Created by Administrator on 2017/8/22 0022. */@Configurationpublic class DSConfig { @Bean(name = "masterDS") @ConfigurationProperties(prefix = "spring.datasource.master") public DataSource dataSourceMaster() { return DataSourceBuilder.create().build(); } @Bean(name = "slaveDS") @ConfigurationProperties(prefix = "spring.datasource.slave") public DataSource dataSourceSlave() { return DataSourceBuilder.create().build(); }}

5、使用主数据源masterDS操作数据表,对应的mapper接口类:IdeaMapperpackage fantasy.dao.master;import fantasy.dao.Idea;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;/** * Created by Administrator on 2017/8/13 0013. */@Mapperpublic interface IdeaMapper { @Select("SELECT * FROM IDEA WHERE id = #{id}") Idea findById(@Param("id") String id); @Update("update idea set name=#{name} where id=#{id}") boolean updateById(@Param("id") String id,@Param("name") String name);}
