问答详情
源自:-

请问有没有 动态表名SQL解析器 使用的具体案例源码呢

请问有没有  动态表名SQL解析器 使用的具体案例源码呢

提问者:悲伤的糖 2019-07-25 10:23

个回答

  • 老猿
    2019-07-25 16:21:31

           与多租户sql解析器的实现是类似的,具体你可以参考多租户sql解析器,他俩的最大区别是,动态表名解析器,配置的处理器可以是多个,通过可以通过DynamicTableNameParser类型对象的setTableNameHandlerMap设置,篇幅有限,我粘贴出关键部分代码:

    DynamicTableNameParser parser = new DynamicTableNameParser();

    Map<String, ITableNameHandler> handlerMap = new HashMap<String, ITableNameHandler>();

    handlerMap.put("原始表名", new ITableNameHandler() {

    @Override

    public String dynamicTableName(MetaObject metaObject, String sql, String tableName) {

    return "你动态替换后的表名,如果返回null,就不替换采用原始表名";

    }

    });

    parser.setTableNameHandlerMap(handlerMap);


  • 正正正zxc
    2019-07-28 19:39:56

    看这两张图

    https://img1.mukewang.com/5d3d89280001020f16961230.jpg

    https://img4.mukewang.com/5d3d897100010f5b16140848.jpg