From 5182fbaf50b7c4c876c0ef1edcfaf08b9dd498a4 Mon Sep 17 00:00:00 2001 From: wugh <328043740@qq.com> Date: Wed, 12 Dec 2018 13:44:52 +0800 Subject: [PATCH] =?UTF-8?q?[bug=E4=BF=AE=E5=A4=8D]=20=E8=A7=A3=E5=86=B3ins?= =?UTF-8?q?ertList=E6=97=A0=E6=B3=95=E5=A4=84=E7=90=86DynamicTableName?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/provider/SpecialProvider.java | 3 +- .../mapper/mapperhelper/SqlHelper.java | 146 ++++++++++-------- .../dialact/oracle/OracleProvider.java | 2 +- .../additional/insert/InsertListProvider.java | 2 +- 4 files changed, 85 insertions(+), 68 deletions(-) diff --git a/base/src/main/java/tk/mybatis/mapper/provider/SpecialProvider.java b/base/src/main/java/tk/mybatis/mapper/provider/SpecialProvider.java index 1f50b5a..1211520 100644 --- a/base/src/main/java/tk/mybatis/mapper/provider/SpecialProvider.java +++ b/base/src/main/java/tk/mybatis/mapper/provider/SpecialProvider.java @@ -30,6 +30,7 @@ import tk.mybatis.mapper.mapperhelper.EntityHelper; import tk.mybatis.mapper.mapperhelper.MapperHelper; import tk.mybatis.mapper.mapperhelper.MapperTemplate; import tk.mybatis.mapper.mapperhelper.SqlHelper; +import tk.mybatis.mapper.util.StringUtil; import java.util.Set; @@ -54,7 +55,7 @@ public class SpecialProvider extends MapperTemplate { //开始拼sql StringBuilder sql = new StringBuilder(); sql.append(""); - sql.append(SqlHelper.insertIntoTable(entityClass, tableName(entityClass))); + sql.append(SqlHelper.insertIntoTable(entityClass, tableName(entityClass), "list[0]")); sql.append(SqlHelper.insertColumns(entityClass, true, false, false)); sql.append(" VALUES "); sql.append(""); diff --git a/core/src/main/java/tk/mybatis/mapper/mapperhelper/SqlHelper.java b/core/src/main/java/tk/mybatis/mapper/mapperhelper/SqlHelper.java index acd2312..25a8d16 100644 --- a/core/src/main/java/tk/mybatis/mapper/mapperhelper/SqlHelper.java +++ b/core/src/main/java/tk/mybatis/mapper/mapperhelper/SqlHelper.java @@ -374,6 +374,22 @@ public class SqlHelper { return sql.toString(); } + /** + * insert into tableName - 动态表名 + * + * @param entityClass + * @param defaultTableName + * @param parameterName 动态表名的参数名 + * @return + */ + public static String insertIntoTable(Class entityClass, String defaultTableName, String parameterName) { + StringBuilder sql = new StringBuilder(); + sql.append("INSERT INTO "); + sql.append(getDynamicTableName(entityClass, defaultTableName, parameterName)); + sql.append(" "); + return sql.toString(); + } + /** * insert table()列 * @@ -476,9 +492,9 @@ public class SqlHelper { String versionClass = version.nextVersion().getCanonicalName(); //version = ${@tk.mybatis.mapper.version@nextVersionClass("versionClass", version)} sql.append(column.getColumn()) - .append(" = ${@tk.mybatis.mapper.version.VersionUtil@nextVersion(") - .append("@").append(versionClass).append("@class, ") - .append(column.getProperty()).append(")},"); + .append(" = ${@tk.mybatis.mapper.version.VersionUtil@nextVersion(") + .append("@").append(versionClass).append("@class, ") + .append(column.getProperty()).append(")},"); } else if (column == logicDeleteColumn) { sql.append(logicDeleteColumnEqualsValue(column, false)).append(","); } else if (notNull) { @@ -883,38 +899,38 @@ public class SqlHelper { */ public static String exampleWhereClause() { return "" + - "\n" + - " ${@tk.mybatis.mapper.util.OGNL@andNotLogicDelete(_parameter)}" + - " \n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criteria)}" + - " \n" + - " \n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition}\n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition} #{criterion.value}\n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition}\n" + - " \n" + - " #{listItem}\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "" + - ""; + "\n" + + " ${@tk.mybatis.mapper.util.OGNL@andNotLogicDelete(_parameter)}" + + " \n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criteria)}" + + " \n" + + " \n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition}\n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition} #{criterion.value}\n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition}\n" + + " \n" + + " #{listItem}\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "" + + ""; } /** @@ -924,36 +940,36 @@ public class SqlHelper { */ public static String updateByExampleWhereClause() { return "\n" + - " ${@tk.mybatis.mapper.util.OGNL@andNotLogicDelete(example)}" + - " \n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criteria)}" + - " \n" + - " \n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition}\n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition} #{criterion.value}\n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n" + - " \n" + - " \n" + - " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition}\n" + - " \n" + - " #{listItem}\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - ""; + " ${@tk.mybatis.mapper.util.OGNL@andNotLogicDelete(example)}" + + " \n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criteria)}" + + " \n" + + " \n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition}\n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition} #{criterion.value}\n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n" + + " \n" + + " \n" + + " ${@tk.mybatis.mapper.util.OGNL@andOr(criterion)} ${criterion.condition}\n" + + " \n" + + " #{listItem}\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + ""; } } diff --git a/extra/src/main/java/tk/mybatis/mapper/additional/dialact/oracle/OracleProvider.java b/extra/src/main/java/tk/mybatis/mapper/additional/dialact/oracle/OracleProvider.java index b28bf25..ae72480 100644 --- a/extra/src/main/java/tk/mybatis/mapper/additional/dialact/oracle/OracleProvider.java +++ b/extra/src/main/java/tk/mybatis/mapper/additional/dialact/oracle/OracleProvider.java @@ -46,7 +46,7 @@ public class OracleProvider extends MapperTemplate { sql.append("INSERT ALL\n"); sql.append("\n"); - String tableName = SqlHelper.getDynamicTableName(entityClass, tableName(entityClass)); + String tableName = SqlHelper.getDynamicTableName(entityClass, tableName(entityClass),"list[0]"); String columns = SqlHelper.insertColumns(entityClass, false, false, false); sql.append(" INTO ").append(tableName).append(" ").append(columns).append("\n"); sql.append(" VALUES "); diff --git a/extra/src/main/java/tk/mybatis/mapper/additional/insert/InsertListProvider.java b/extra/src/main/java/tk/mybatis/mapper/additional/insert/InsertListProvider.java index a45409a..9341cff 100644 --- a/extra/src/main/java/tk/mybatis/mapper/additional/insert/InsertListProvider.java +++ b/extra/src/main/java/tk/mybatis/mapper/additional/insert/InsertListProvider.java @@ -52,7 +52,7 @@ public class InsertListProvider extends MapperTemplate { //开始拼sql StringBuilder sql = new StringBuilder(); sql.append(""); - sql.append(SqlHelper.insertIntoTable(entityClass, tableName(entityClass))); + sql.append(SqlHelper.insertIntoTable(entityClass, tableName(entityClass), "list[0]")); sql.append(SqlHelper.insertColumns(entityClass, false, false, false)); sql.append(" VALUES "); sql.append(""); -- Gitee