SSM整合多数据源

Spring+SpringMVC+MyBaits 整合多数据源。数据库:MySQL+Mariadb。
SSM基本配置这里就不细说了,直接进入正题,进行多数据源的配置。

附源码地址:https://gitee.com/hiseico/mybatis-multi-source-isomerism

我的博客:https://blog.sitcat.cn/

引入Mysql及Maria数据库驱动包,以Maven为例

 
    mysql
    mysql-connector-java
    5.1.36
  
  
  
     org.mariadb.jdbc
     mariadb-java-client
     2.4.1
   

具体版本自己定。

jdbc.properties中配置多个数据源

jdbc.mysql.driver=com.mysql.jdbc.Driver
jdbc.mysql.url=jdbc:mysql://localhost:3306/clouddb01?useUnicode=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
jdbc.mysql.username=root
jdbc.mysql.password=root

jdbc.mariadb.driver=org.mariadb.jdbc.Driver
jdbc.mariadb.url=jdbc:mariadb://localhost:3307/clouddb02?useUnicode=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
jdbc.mariadb.username=root
jdbc.mariadb.password=root

在Spring的application.xml中为每一个数据库配置数据源、MyBatis相关、事务等



    
    

    
    
        
            
                classpath:jdbc.properties
            
        
    

    
    
    

        
        
        
        
    
    
    
        
        
        
        
    

    
    
    
        
    
    
    
        
    

    
    
    
        
        
    
    
    
        
        
    

    
    
    

    
    
        
        
    
    
    
        
        
    

    
    
    
        
            
            
            
            
            
            
            
            
            
            
            
            
        
    

    
    
        
            
            
            
            
            
            
            
            
            
            
            
            
        
    

剩下的Mapper.xml、Serivce层等业务和单数据源的时候一样,直接编写对应表的Mapper即可。

注意事项

1.这里不推荐在application.xml中使用databaseIdProvider配置。如下:


   
       
           
               oracle 
               mysql
               sqlserver
               db2
           
       
   
   
       
   

这样配置的话,在mapper.xml中的语句上使用databaseId声明数据源会直接报错。

    

会报错invalid bound statement (not found),具体原因还未查明。(可能是我的配置不对)


2.每个数据库的mapper放到单独的一个包下,不要将多个数据库的mapper挡在同一个目录里。在Spring的配置文件application.xml中的MapperScannerConfigurer分别声明对应的basePackage。如下:

    
    
        
        
    
    
    
        
        
    

附:项目结构图

项目结构

你可能感兴趣的:(SSM整合多数据源)