diff --git a/datax-web/src/main/java/com/wugui/tool/datax/BaseDataxPlugin.java b/datax-web/src/main/java/com/wugui/tool/datax/BaseDataxPlugin.java index 939ac9dd..c43b110a 100644 --- a/datax-web/src/main/java/com/wugui/tool/datax/BaseDataxPlugin.java +++ b/datax-web/src/main/java/com/wugui/tool/datax/BaseDataxPlugin.java @@ -1,5 +1,8 @@ package com.wugui.tool.datax; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.Map; /** @@ -12,11 +15,13 @@ import java.util.Map; */ public abstract class BaseDataxPlugin implements DataxPluginInterface { + protected Logger logger = LoggerFactory.getLogger(this.getClass()); + protected Map extraParams; @Override - public void extraParams(Map extraParams) { + public void setExtraParams(Map extraParams) { this.extraParams = extraParams; } diff --git a/datax-web/src/main/java/com/wugui/tool/datax/DataxJsonHelper.java b/datax-web/src/main/java/com/wugui/tool/datax/DataxJsonHelper.java index 485e83d9..b7437761 100644 --- a/datax-web/src/main/java/com/wugui/tool/datax/DataxJsonHelper.java +++ b/datax-web/src/main/java/com/wugui/tool/datax/DataxJsonHelper.java @@ -65,6 +65,9 @@ public class DataxJsonHelper implements DataxJsonInterface { private BaseDataxPlugin writerPlugin; + //用于保存额外参数 + private Map extraParams = Maps.newHashMap(); + public void initReader(JobJdbcDatasource readerDatasource, List readerTables, List readerColumns) { this.readerTables = readerTables; this.readerColumns = readerColumns; @@ -80,6 +83,7 @@ public class DataxJsonHelper implements DataxJsonInterface { } else if (JdbcConstants.POSTGRESQL.equals(readerDbType)) { readerPlugin = new PostgresqlReader(); } + readerPlugin.setExtraParams(extraParams); } public void initWriter(JobJdbcDatasource writerDatasource, List writerTables, List writerColumns) { @@ -156,4 +160,8 @@ public class DataxJsonHelper implements DataxJsonInterface { public void setWriterPlugin(BaseDataxPlugin writerPlugin) { this.writerPlugin = writerPlugin; } + + public void addWhereParams(String params) { + extraParams.put("where", params); + } } diff --git a/datax-web/src/main/java/com/wugui/tool/datax/DataxPluginInterface.java b/datax-web/src/main/java/com/wugui/tool/datax/DataxPluginInterface.java index 1e54fde4..f98c03fe 100644 --- a/datax-web/src/main/java/com/wugui/tool/datax/DataxPluginInterface.java +++ b/datax-web/src/main/java/com/wugui/tool/datax/DataxPluginInterface.java @@ -37,7 +37,7 @@ public interface DataxPluginInterface { /** * 传递一些额外的参数 * - * @return extraParams + * @return setExtraParams */ - void extraParams(Map extraParams); + void setExtraParams(Map extraParams); } diff --git a/datax-web/src/main/java/com/wugui/tool/datax/reader/BaseReaderPlugin.java b/datax-web/src/main/java/com/wugui/tool/datax/reader/BaseReaderPlugin.java index cb082abd..5f17d09e 100644 --- a/datax-web/src/main/java/com/wugui/tool/datax/reader/BaseReaderPlugin.java +++ b/datax-web/src/main/java/com/wugui/tool/datax/reader/BaseReaderPlugin.java @@ -32,11 +32,16 @@ public abstract class BaseReaderPlugin extends BaseDataxPlugin { parameterObj.put("password", jobJdbcDatasource.getJdbcPassword()); //列表 parameterObj.put("column", dataxPluginPojo.getColumns()); -// + + //判断是否有where + if (extraParams.containsKey("where")) { + parameterObj.put("where", extraParams.get("where")); + } + Map connectionObj = Maps.newLinkedHashMap(); connectionObj.put("table", dataxPluginPojo.getTables()); - //where -// connectionObj.put("where", "1=1"); + +// logger.info(extraParams.toString()); connectionObj.put("jdbcUrl", ImmutableList.of(jobJdbcDatasource.getJdbcUrl())); parameterObj.put("connection", ImmutableList.of(connectionObj)); diff --git a/datax-web/src/test/java/com/wugui/tool/datax/DataxJsonHelperTest.java b/datax-web/src/test/java/com/wugui/tool/datax/DataxJsonHelperTest.java index 796b7a28..6bfe3a08 100644 --- a/datax-web/src/test/java/com/wugui/tool/datax/DataxJsonHelperTest.java +++ b/datax-web/src/test/java/com/wugui/tool/datax/DataxJsonHelperTest.java @@ -68,6 +68,7 @@ public class DataxJsonHelperTest { public void buildReader() { DataxJsonHelper dataxJsonHelper = new DataxJsonHelper(); dataxJsonHelper.initReader(getReaderDatasource(), ImmutableList.of("datax_plugin"), ImmutableList.of("id")); +// dataxJsonHelper.addWhereParams("1=1"); Map reader = dataxJsonHelper.buildReader(); System.out.println(JSONUtils.formatJson(reader)); }