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 参数说明
- 由于我们的结构设计,最终生成的SQL是根据图表和数据集的模型一次性生成的,无法拆分出图表中的数据集的SQL , 所以在接口中传入的参数是执行查询的最终的SQL,即在查询数据集数据的时候传入的是数据集的SQL,在查询图表数据的时候传入的是图表的SQL。
- 当前登录用户的ID可以通过示例中的代码进行获取,入参中没有传递。
- 返回值为处理后的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为实现类的访问路径。