From 04c58285aac5a38c598f142b548aaf74a08094d3 Mon Sep 17 00:00:00 2001 From: zhouhongfa Date: Sat, 3 Aug 2019 00:28:29 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E5=A2=9E=E5=8A=A0=20where=20?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/wugui/tool/datax/BaseDataxPlugin.java | 7 ++++++- .../java/com/wugui/tool/datax/DataxJsonHelper.java | 8 ++++++++ .../com/wugui/tool/datax/DataxPluginInterface.java | 4 ++-- .../com/wugui/tool/datax/reader/BaseReaderPlugin.java | 11 ++++++++--- .../com/wugui/tool/datax/DataxJsonHelperTest.java | 1 + 5 files changed, 25 insertions(+), 6 deletions(-) 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 939ac9d..c43b110 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 @@ */ 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 485e83d..b743776 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 void initReader(JobJdbcDatasource readerDatasource, List readerTa } 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 Map buildWriter() { 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 1e54fde..f98c03f 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 cb082ab..5f17d09 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 Map build(DataxPluginPojo dataxPluginPojo) { 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 796b7a2..6bfe3a0 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 void buildContent() { 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)); }