mybatis databaseIdの使用(マルチデータベース切り替え)


プロジェクトの中で現在使っているのはOracleデータベースで、未来はいつMySqlデータベースに切り替えるか分からない.ボスは今mysqlをサポートさせている.未来の切り替えは構成を変えてMysqlに柔軟に切るだけで、プロジェクトはSpringBoot+Mybatisで、構成は簡単だ.
1.mybatis 2つのデータベースの構成
iwhalecloud.mysql.datasource.driver=com.mysql.jdbc.Driver
#iwhalecloud.mysql.datasource.url=jdbc:mysql://122.***.9.**:19087/
iwhalecloud.mysql.datasource.url=jdbc:mysql://10.45.**.**:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
iwhalecloud.mysql.datasource.username=root
iwhalecloud.mysql.datasource.password=root

iwhalecloud.oracle.datasource.driver=oracle.jdbc.driver.OracleDriver
iwhalecloud.oracle.datasource.url=jdbc:oracle:thin:@10.45.**.**:1521:testDb
iwhalecloud.oracle.datasource.username=root
iwhalecloud.oracle.datasource.password=root

mybatisプロファイルで2つのデータソースを構成します.赤いフォントは今後データベースを変更する場所です.

    
    
    
    



    
    
    
    



    
        
            datasource2" key="oracle"/>
        
    
    datasource2"/>

2.databaseIdProviderを構成し、赤い箇所は下の構成を参照

    
    
    
    
        
            classpath*:/mapper/*.xml
        
    
    
    

    
        
            oracle
            mysql
        
    


    

3.使用:単純な添削検査で、関数を使用していない場合、一連のsqlは共用でき、databaseIdを追加する必要はなく、負荷sqlが区別する必要がある場合

databaseId="mysql"parameterType="****">
    select * from sys_user