databaseId配置
原创2022年1月12日约 219 字小于 1 分钟
databaseId配置
配置类
@MapperScan("com..xxx.mapper")
@PropertySource("classpath:xxx-dal.properties")
@Import(DalConfiguratrion.class)
public class DalConfiguration {
@Bean
public DatabaseIdProvider getDatabaseIdProvider(){
DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
Properties properties = new Properties();
// Properties 中 "Oracle" 为 DatabaseProductName 每种数据库的JDBC都有自己Name, 如果下面列的没有自己的数据库类型, 可以Debug模式下调试VendorDatabaseIdProvider.getDatabaseName()
properties.setProperty("Oracle","oracle");
properties.setProperty("MySQL","mysql");
databaseIdProvider.setProperties(properties);
return databaseIdProvider;
}
}
内置参数 _parameter & _databaseId
_parameter:代表整个参数
单个参数:_parameter就是这个参数
多个参数:参数会被封装为一个map;_parameter就是代表这个map
_databaseId:如果配置了databaseIdProvider标签。
_databaseId就是代表当前数据库的别名oracle
<select id="getEmpsTestInnerParameter" resultType="com.qdc.test.Employee">
<if test="_databaseId=='mysql'">
select * from tbl_employee
<if test="_parameter!=null">
where last_name like #{_parameter.lastName}
</if>
</if>
<if test="_databaseId=='oracle'">
select * from employees
<if test="_parameter!=null">
where last_name like #{_parameter.lastName}
</if>
</if>
</select>
贡献者
wangjlwangjialin