在druid-1.2.17版本中,新增加一个功能TableMapping,用于修改SQL中的表名。
接口定义
- package com.alibaba.druid.sql;
- public class SQLUtils {
- public static String refactor(String sql, String dbType, Map<String, String> tableMapping);
- }
参数解析
- sql 需要修改的SQL
- dbType 数据库类型,在JdbcConstants中定义有各种数据库类型的常量,比如mysql/oracle/db2/sqlserver/odps等
- tableMapping 需要映射的表名
- 返回值 映射修改后的SQL
使用示例
- import com.alibaba.druid.sql.SQLUtils;
- Map<String, String> mapping = Collections.singletonMap("user", "user_01");
- String sql = "select * from user";
- String result = SQLUtils.refactor(sql, JdbcConstants.MYSQL, mapping);
- assertEquals("SELECT *\n" +
- "FROM user_01", result);