diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 0666745755..0c78adae2d 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -962,14 +962,22 @@ public class DataSetTableService { public String removeVariables(String sql) throws Exception { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(sql); + boolean hasVariables = false; while (matcher.find()) { + hasVariables = true; sql = sql.replace(matcher.group(), SubstitutedParams); } + if(!hasVariables){ + return sql; + } CCJSqlParserUtil.parse(sql, parser -> parser.withSquareBracketQuotation(true)); Statement statement = CCJSqlParserUtil.parse(sql); Select select = (Select) statement; PlainSelect plainSelect = ((PlainSelect) select.getSelectBody()); Expression expr = plainSelect.getWhere(); + if(expr == null){ + return sql; + } StringBuilder stringBuilder = new StringBuilder(); BinaryExpression binaryExpression = (BinaryExpression)expr; diff --git a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java index cba528e0b0..f8cdfaf41c 100644 --- a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java +++ b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java @@ -143,7 +143,8 @@ public class DatasourceService { } if(datasourceDTO.getType().equalsIgnoreCase(DatasourceTypes.mysql.toString())){ - datasourceDTO.setConfiguration(datasourceDTO.getConfiguration()); + MysqlConfiguration mysqlConfiguration = new Gson().fromJson(datasourceDTO.getConfiguration(), MysqlConfiguration.class); + datasourceDTO.setConfiguration(new Gson().toJson(mysqlConfiguration)); } if (datasourceDTO.getType().equalsIgnoreCase(DatasourceTypes.api.toString())) { List apiDefinitionList = new Gson().fromJson(datasourceDTO.getConfiguration(), new TypeToken>() {}.getType());