SQL预处理接口说明

1.1 示例代码

package com.neusoft.saca.dataviz.data.engine.generation.sql.dialect.generic;

import com.neusoft.saca.dataviz.common.security.SecurityUtil;
import com.neusoft.saca.dataviz.data.engine.generation.sql.SQLHandler;

/**
 * @author ch-zhuo
 * @since 2018年7月31日
 */
public class OracleSQLHandler implements SQLHandler {

    /**
     * SQL 处理接口
     * 
     * @param sql
     *            生成的sql
     * @return 处理后的sql
     */
    @Override
    public String process(String sql) {
        // 获取当前登录用户ID
        String userId = SecurityUtil.getCurrentUserId();
        /**
         * 处理sql
         */

        return sql;
    }

}

1.2 参数说明

  1. 由于我们的结构设计,最终生成的SQL是根据图表和数据集的模型一次性生成的,无法拆分出图表中的数据集的SQL , 所以在接口中传入的参数是执行查询的最终的SQL,即在查询数据集数据的时候传入的是数据集的SQL,在查询图表数据的时候传入的是图表的SQL。
  2. 当前登录用户的ID可以通过示例中的代码进行获取,入参中没有传递。
  3. 返回值为处理后的SQL。

1.3 配置说明

需要修改dataviz-service/WEB-INF/conf/internalConfig.properties配置文件,如下:

internal.sqlHandler=

改为:

internal.sqlHandler=com.neusoft.saca.dataviz.data.engine.generation.sql.dialect.generic.OracleSQLHandler

com.neusoft.saca.dataviz.data.engine.generation.sql.dialect.generic.OracleSQLHandler为实现类的访问路径。

results matching ""

    No results matching ""