From 7291914402e5e9c77099f4e2c5539a727eeb3160 Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Wed, 10 Apr 2024 23:33:31 +0800 Subject: [PATCH] =?UTF-8?q?feature=20#I61D1N=20=E8=A7=84=E5=88=99=E5=B1=82?= =?UTF-8?q?=E9=9D=A2=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AAenable=E7=9A=84?= =?UTF-8?q?=E9=80=89=E9=A1=B9=EF=BC=8C=E5=8F=AF=E4=BB=A5=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parser/constant/SqlReadConstant.java | 8 +-- .../parser/sql/read/AbstractSqlRead.java | 5 +- .../parser/sql/read/impl/ChainRead.java | 30 ++++++---- .../parser/sql/read/impl/ScriptRead.java | 56 ++++++++----------- 4 files changed, 49 insertions(+), 50 deletions(-) diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java index f816aec98..1161493d2 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java @@ -10,15 +10,11 @@ package com.yomahub.liteflow.parser.constant; */ public class SqlReadConstant { - public static final String SQL_PATTERN = "SELECT {},{} FROM {} WHERE {}=?"; - - public static final String SQL_ENABLE_PATTERN = "AND {}=?"; + public static final String SQL_PATTERN = "SELECT * FROM {} WHERE {}=?"; public static final String SCRIPT_SQL_CHECK_PATTERN = "SELECT 1 FROM {} "; - public static final String SCRIPT_SQL_PATTERN = "SELECT {},{},{},{} FROM {} WHERE {}=?"; - - public static final String SCRIPT_WITH_LANGUAGE_SQL_PATTERN = "SELECT {},{},{},{},{} FROM {} WHERE {}=?"; + public static final String SCRIPT_SQL_PATTERN = "SELECT * FROM {} WHERE {}=?"; public static final String CHAIN_XML_PATTERN = ""; diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java index 610c7079c..bb2f7cbec 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java @@ -35,11 +35,12 @@ public abstract class AbstractSqlRead implements SqlRead { return new HashMap<>(); } - Map result = new HashMap<>(); + checkConfig(); String sqlCmd = buildQuerySql(); // 如果允许,就打印 sql 语句 logSqlIfEnable(sqlCmd); + Map result = new HashMap<>(); Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; @@ -91,6 +92,8 @@ public abstract class AbstractSqlRead implements SqlRead { public abstract String buildXmlElementUniqueKey(ResultSet rs) throws SQLException; + public abstract void checkConfig(); + /** * 是否可以读取 * chain 默认可以读取 diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java index 4bbd1d3cf..c7048a8b0 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java @@ -39,25 +39,35 @@ public class ChainRead extends AbstractSqlRead { @Override public String buildQuerySql() { + String chainTableName = super.config.getChainTableName(); + String chainApplicationNameField = super.config.getChainApplicationNameField(); + + return StrUtil.format(SqlReadConstant.SQL_PATTERN, chainTableName, chainApplicationNameField); + } + + @Override + public void checkConfig() { String chainTableName = super.config.getChainTableName(); String elDataField = super.config.getElDataField(); String chainNameField = super.config.getChainNameField(); String chainApplicationNameField = super.config.getChainApplicationNameField(); String applicationName = super.config.getApplicationName(); - - if (StrUtil.isBlank(chainTableName)) { + if (StrUtil.isBlank(chainTableName)){ throw new ELSQLException("You did not define the chainTableName property"); } - - if (StrUtil.isBlank(applicationName) || StrUtil.isBlank(chainApplicationNameField)) { - throw new ELSQLException("You did not define the applicationName or chainApplicationNameField property"); + if (StrUtil.isBlank(elDataField)){ + throw new ELSQLException("You did not define the elDataField property"); + } + if (StrUtil.isBlank(chainNameField)){ + throw new ELSQLException("You did not define the chainNameField property"); + } + if (StrUtil.isBlank(chainApplicationNameField)){ + throw new ELSQLException("You did not define the chainApplicationNameField property"); + } + if (StrUtil.isBlank(applicationName)){ + throw new ELSQLException("You did not define the applicationName property"); } - - String sqlCmd = StrUtil.format(SqlReadConstant.SQL_PATTERN, chainNameField, elDataField, chainTableName, - chainApplicationNameField); - - return sqlCmd; } @Override diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ScriptRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ScriptRead.java index d55b142f4..3b2fd2642 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ScriptRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ScriptRead.java @@ -46,48 +46,38 @@ public class ScriptRead extends AbstractSqlRead { @Override public String buildQuerySql() { - String scriptLanguageField = super.config.getScriptLanguageField(); + String scriptTableName = super.config.getScriptTableName(); + String scriptApplicationNameField = super.config.getScriptApplicationNameField(); + + return StrUtil.format( + SqlReadConstant.SCRIPT_SQL_PATTERN, + scriptTableName, + scriptApplicationNameField); + } + + @Override + public void checkConfig() { String scriptTableName = super.config.getScriptTableName(); String scriptIdField = super.config.getScriptIdField(); String scriptDataField = super.config.getScriptDataField(); - String scriptNameField = super.config.getScriptNameField(); String scriptTypeField = super.config.getScriptTypeField(); String scriptApplicationNameField = super.config.getScriptApplicationNameField(); - String applicationName = super.config.getApplicationName(); - - if (StrUtil.isBlank(applicationName) || StrUtil.isBlank(scriptApplicationNameField)) { - throw new ELSQLException("You did not define the applicationName or scriptApplicationNameField property"); + if(StrUtil.isBlank(scriptTableName)){ + throw new ELSQLException("You did not define the scriptTableName property"); } - - String sqlCmd = null; - // 脚本节点(带语言) - if (withLanguage()) { - sqlCmd = StrUtil.format( - SqlReadConstant.SCRIPT_WITH_LANGUAGE_SQL_PATTERN, - scriptIdField, - scriptDataField, - scriptNameField, - scriptTypeField, - scriptLanguageField, - scriptTableName, - scriptApplicationNameField - ); + if(StrUtil.isBlank(scriptIdField)){ + throw new ELSQLException("You did not define the scriptIdField property"); } - // 脚本节点(不带语言) - else { - sqlCmd = StrUtil.format( - SqlReadConstant.SCRIPT_SQL_PATTERN, - scriptIdField, - scriptDataField, - scriptNameField, - scriptTypeField, - scriptTableName, - scriptApplicationNameField - ); + if(StrUtil.isBlank(scriptDataField)){ + throw new ELSQLException("You did not define the scriptDataField property"); + } + if(StrUtil.isBlank(scriptTypeField)){ + throw new ELSQLException("You did not define the scriptTypeField property"); + } + if(StrUtil.isBlank(scriptApplicationNameField)){ + throw new ELSQLException("You did not define the scriptApplicationNameField property"); } - - return sqlCmd; } @Override