比如一个mapper.xml文件需要同时具备兼容oracle,mysql,sql server,h2…
那么问题就来了,如在sql中动态传入的条件 <if test “contno != null and contno!=” " ">
contno like ‘%’||#{contno}||’%’ 这种字符串连接||只适用于oracle,而在mysql,sql server中是不适用的, oracle,mysql都可以用concat()函数进行连接,oracle的concat()只能传入两个参数,而mysql的可以传入多个参数,sqlserver则不能用concat()函数 ,只能用+来进行字符串的连接。
那么怎么解决呢?话不多说:
首先需要编写一个配置类:
/**
-
数据源配置
*/
@Configuration
public class DataSourceConfig {
@Value("${mybatis.mapper-locations}")
private String mapperLocations;@Primary
@Bean
@ConfigurationProperties(prfix = “spring.datasource.druid”)
public DataSource dataSource(){
return DruidDataSourceBuilder.create().build();
}@Bean
public JdbcTemplate jdbcTemplate(){
return new JdbcTemplate(dataSource());
}@Bean