springboot mybatis多数据库支持

1.配置 application-dev.properties

# ================================================
#                   MyBatis配置
# ================================================
#开启驼峰命名
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.database-id=${database.type}

注意database-id的配置
2.在springboot中配置DatabaseIdProvider

@Bean
public DatabaseIdProvider getDatabaseIdProvider() {
    DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
    Properties properties = new Properties();
    properties.setProperty("Oracle", "oracle");
    properties.setProperty("MySQL", "mysql");
    properties.setProperty("DB2", "db2");
    properties.setProperty("Derby", "derby");
    properties.setProperty("H2", "h2");
    properties.setProperty("HSQL", "hsql");
    properties.setProperty("Informix", "informix");
    properties.setProperty("Microsoft SQL Server", "sqlserver");
    properties.setProperty("PostgreSQL", "postgresql");
    properties.setProperty("Sybase", "sybase");
    properties.setProperty("Hana", "hana");
    databaseIdProvider.setProperties(properties);
    return databaseIdProvider;
}

注意:数据库版本是否正确
3.在 mapper.xml 中使用
方法1

<select id="selectTop" resultType="java.util.Map" parameterType="java.lang.Integer" databaseId="sqlserver">
    select top(#{value})*
    from kcjs
  </select>

<select id="selectTop" resultType="java.util.Map" parameterType="java.lang.Integer" databaseId="mysql">
    select *
    from kcjs limit 0,#{value}
</select>

方法2

<select id="selectTop" resultType="java.util.Map" parameterType="java.lang.Integer">
    select
    <if test="_databaseId==sqlserver">
        top(#{value})*
        from kcjs
    </if>
    <if test="_databaseId==mysql">
        *
        from kcjs limit 0,#{value}
    </if>

</select>
posted @ 2020-12-09 14:15  灯塔下的守望者  阅读(605)  评论(0编辑  收藏  举报