From 95d53309372c117e58e04cd0f2cae8ad5b4dc805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=B5=B7=E5=93=A5?= Date: Sat, 17 Jun 2023 12:17:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E6=96=B9=E8=A8=80=E5=8A=A8=E6=80=81=E6=B7=BB=E5=8A=A0=20queryW?= =?UTF-8?q?rapper=20=E6=9D=A1=E4=BB=B6=EF=BC=8C=E5=87=BA=E7=8E=B0=20No=20v?= =?UTF-8?q?alue=20specified=20for=20param=20=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=EF=BC=8C=20close=20#I7E7L8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/provider/EntitySqlProvider.java | 29 +++++++---- .../core/provider/RowSqlProvider.java | 50 ++++++++++++------- 2 files changed, 51 insertions(+), 28 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/EntitySqlProvider.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/EntitySqlProvider.java index eb506691..aca2e3f0 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/EntitySqlProvider.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/EntitySqlProvider.java @@ -208,10 +208,10 @@ public class EntitySqlProvider { CPI.setFromIfNecessary(queryWrapper, tableInfo.getSchema(), tableInfo.getTableName()); tableInfo.appendConditions(null, queryWrapper); + + String sql = DialectFactory.getDialect().forDeleteEntityBatchByQuery(tableInfo, queryWrapper); ProviderUtil.setSqlArgs(params, CPI.getValueArray(queryWrapper)); - - - return DialectFactory.getDialect().forDeleteEntityBatchByQuery(tableInfo, queryWrapper); + return sql; } @@ -269,12 +269,14 @@ public class EntitySqlProvider { //处理逻辑删除 和 多租户等 tableInfo.appendConditions(entity, queryWrapper); + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forUpdateEntityByQuery(tableInfo, entity, ignoreNulls, queryWrapper); + Object[] values = tableInfo.buildUpdateSqlArgs(entity, ignoreNulls, true); Object[] queryParams = CPI.getValueArray(queryWrapper); - ProviderUtil.setSqlArgs(params, ArrayUtil.concat(values, queryParams)); - return DialectFactory.getDialect().forUpdateEntityByQuery(tableInfo, entity, ignoreNulls, queryWrapper); + return sql; } /** @@ -296,11 +298,14 @@ public class EntitySqlProvider { //处理逻辑删除 和 多租户等 tableInfo.appendConditions(null, queryWrapper); - Object[] queryParams = CPI.getValueArray(queryWrapper); + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forUpdateNumberAddByQuery(tableInfo.getSchema() + , tableInfo.getTableName(), fieldName, value, queryWrapper); + Object[] queryParams = CPI.getValueArray(queryWrapper); ProviderUtil.setSqlArgs(params, queryParams); - return DialectFactory.getDialect().forUpdateNumberAddByQuery(tableInfo.getSchema(), tableInfo.getTableName(), fieldName, value, queryWrapper); + return sql; } @@ -372,10 +377,13 @@ public class EntitySqlProvider { CPI.setFromIfNecessary(queryWrapper, tableInfo.getSchema(), tableInfo.getTableName()); } + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forSelectByQuery(queryWrapper); + Object[] values = CPI.getValueArray(queryWrapper); ProviderUtil.setSqlArgs(params, values); - return DialectFactory.getDialect().forSelectByQuery(queryWrapper); + return sql; } /** @@ -399,10 +407,13 @@ public class EntitySqlProvider { CPI.setFromIfNecessary(queryWrapper, tableInfo.getSchema(), tableInfo.getTableName()); } + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forSelectByQuery(queryWrapper); + Object[] values = CPI.getValueArray(queryWrapper); ProviderUtil.setSqlArgs(params, values); - return DialectFactory.getDialect().forSelectByQuery(queryWrapper); + return sql; } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/RowSqlProvider.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/RowSqlProvider.java index 1e1a8dd7..10ac72e2 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/RowSqlProvider.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/RowSqlProvider.java @@ -60,14 +60,14 @@ public class RowSqlProvider { * * @param params * @return sql - * @see RowMapper#insert(String,String, Row) + * @see RowMapper#insert(String, String, Row) */ public static String insert(Map params) { String tableName = ProviderUtil.getTableName(params); String schema = ProviderUtil.getSchemaName(params); Row row = ProviderUtil.getRow(params); ProviderUtil.setSqlArgs(params, RowCPI.obtainModifyValues(row)); - return DialectFactory.getDialect().forInsertRow(schema,tableName, row); + return DialectFactory.getDialect().forInsertRow(schema, tableName, row); } /** @@ -98,7 +98,7 @@ public class RowSqlProvider { ProviderUtil.setSqlArgs(params, values); //sql: INSERT INTO `tb_table`(`name`, `sex`) VALUES (?, ?),(?, ?),(?, ?) - return DialectFactory.getDialect().forInsertBatchWithFirstRowColumns(schema,tableName, rows); + return DialectFactory.getDialect().forInsertBatchWithFirstRowColumns(schema, tableName, rows); } /** @@ -106,7 +106,7 @@ public class RowSqlProvider { * * @param params * @return sql - * @see RowMapper#deleteById(String,String, String, Object) + * @see RowMapper#deleteById(String, String, String, Object) */ public static String deleteById(Map params) { String schema = ProviderUtil.getSchemaName(params); @@ -146,18 +146,21 @@ public class RowSqlProvider { * * @param params * @return sql - * @see RowMapper#deleteByQuery(String,String, QueryWrapper) + * @see RowMapper#deleteByQuery(String, String, QueryWrapper) */ public static String deleteByQuery(Map params) { String schema = ProviderUtil.getSchemaName(params); String tableName = ProviderUtil.getTableName(params); QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params); - CPI.setFromIfNecessary(queryWrapper, schema,tableName); + CPI.setFromIfNecessary(queryWrapper, schema, tableName); + + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forDeleteByQuery(queryWrapper); Object[] valueArray = CPI.getValueArray(queryWrapper); ProviderUtil.setSqlArgs(params, valueArray); - return DialectFactory.getDialect().forDeleteByQuery(queryWrapper); + return sql; } /** @@ -189,14 +192,17 @@ public class RowSqlProvider { Row data = ProviderUtil.getRow(params); QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params); - CPI.setFromIfNecessary(queryWrapper,schema, tableName); + CPI.setFromIfNecessary(queryWrapper, schema, tableName); + + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forUpdateByQuery(queryWrapper, data); Object[] modifyValues = RowCPI.obtainModifyValues(data); Object[] valueArray = CPI.getValueArray(queryWrapper); ProviderUtil.setSqlArgs(params, ArrayUtil.concat(modifyValues, valueArray)); - return DialectFactory.getDialect().forUpdateByQuery(queryWrapper, data); + return sql; } @@ -221,7 +227,7 @@ public class RowSqlProvider { values = ArrayUtil.concat(values, RowCPI.obtainAllModifyValues(row)); } ProviderUtil.setSqlArgs(params, values); - return DialectFactory.getDialect().forUpdateBatchById(schema,tableName, rows); + return DialectFactory.getDialect().forUpdateBatchById(schema, tableName, rows); } /** @@ -269,12 +275,13 @@ public class RowSqlProvider { String fieldName = ProviderUtil.getFieldName(params); Number value = (Number) ProviderUtil.getValue(params); + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forUpdateNumberAddByQuery(schema + , tableName, fieldName, value, queryWrapper); Object[] queryParams = CPI.getValueArray(queryWrapper); - ProviderUtil.setSqlArgs(params, queryParams); - - return DialectFactory.getDialect().forUpdateNumberAddByQuery(schema, tableName, fieldName, value, queryWrapper); + return sql; } @@ -293,7 +300,7 @@ public class RowSqlProvider { ProviderUtil.setSqlArgs(params, primaryValues); - return DialectFactory.getDialect().forSelectOneById(schema,tableName, primaryKeys, primaryValues); + return DialectFactory.getDialect().forSelectOneById(schema, tableName, primaryKeys, primaryValues); } @@ -308,13 +315,15 @@ public class RowSqlProvider { String schema = ProviderUtil.getSchemaName(params); String tableName = ProviderUtil.getTableName(params); QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params); - CPI.setFromIfNecessary(queryWrapper,schema, tableName); + CPI.setFromIfNecessary(queryWrapper, schema, tableName); + + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forSelectByQuery(queryWrapper); Object[] valueArray = CPI.getValueArray(queryWrapper); ProviderUtil.setSqlArgs(params, valueArray); - - return DialectFactory.getDialect().forSelectByQuery(queryWrapper); + return sql; } /** @@ -329,12 +338,15 @@ public class RowSqlProvider { String tableName = ProviderUtil.getTableName(params); QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params); - CPI.setFromIfNecessary(queryWrapper,schema,tableName); + CPI.setFromIfNecessary(queryWrapper, schema, tableName); + + //优先构建 sql,再构建参数 + String sql = DialectFactory.getDialect().forSelectByQuery(queryWrapper); Object[] valueArray = CPI.getValueArray(queryWrapper); ProviderUtil.setSqlArgs(params, valueArray); - return DialectFactory.getDialect().forSelectByQuery(queryWrapper); + return sql; }