sql语句增加引号,兼容mysql关键字 (#2358)

This commit is contained in:
zhshy11
2020-02-28 11:47:38 +08:00
committed by GitHub
parent b9a157657f
commit bd56438eca

View File

@@ -245,7 +245,7 @@ public class RdbSyncService {
StringBuilder insertSql = new StringBuilder(); StringBuilder insertSql = new StringBuilder();
insertSql.append("INSERT INTO ").append(SyncUtil.getDbTableName(dbMapping)).append(" ("); insertSql.append("INSERT INTO ").append(SyncUtil.getDbTableName(dbMapping)).append(" (");
columnsMap.forEach((targetColumnName, srcColumnName) -> insertSql.append(targetColumnName).append(",")); columnsMap.forEach((targetColumnName, srcColumnName) -> insertSql.append("`").append(targetColumnName).append("`").append(","));
int len = insertSql.length(); int len = insertSql.length();
insertSql.delete(len - 1, len).append(") VALUES ("); insertSql.delete(len - 1, len).append(") VALUES (");
int mapLen = columnsMap.size(); int mapLen = columnsMap.size();
@@ -327,7 +327,7 @@ public class RdbSyncService {
if (!targetColumnNames.isEmpty()) { if (!targetColumnNames.isEmpty()) {
hasMatched = true; hasMatched = true;
for (String targetColumnName : targetColumnNames) { for (String targetColumnName : targetColumnNames) {
updateSql.append(targetColumnName).append("=?, "); updateSql.append("`").append(targetColumnName).append("`").append("=?, ");
Integer type = ctype.get(Util.cleanColumn(targetColumnName).toLowerCase()); Integer type = ctype.get(Util.cleanColumn(targetColumnName).toLowerCase());
if (type == null) { if (type == null) {
throw new RuntimeException("Target column: " + targetColumnName + " not matched"); throw new RuntimeException("Target column: " + targetColumnName + " not matched");
@@ -447,7 +447,7 @@ public class RdbSyncService {
if (srcColumnName == null) { if (srcColumnName == null) {
srcColumnName = Util.cleanColumn(targetColumnName); srcColumnName = Util.cleanColumn(targetColumnName);
} }
sql.append(targetColumnName).append("=? AND "); sql.append("`").append(targetColumnName).append("`").append("=? AND ");
Integer type = ctype.get(Util.cleanColumn(targetColumnName).toLowerCase()); Integer type = ctype.get(Util.cleanColumn(targetColumnName).toLowerCase());
if (type == null) { if (type == null) {
throw new RuntimeException("Target column: " + targetColumnName + " not matched"); throw new RuntimeException("Target column: " + targetColumnName + " not matched");