精简sql
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.czg.config;
|
package com.czg.config;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.mybatisflex.core.audit.AuditManager;
|
import com.mybatisflex.core.audit.AuditManager;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
@@ -17,8 +18,24 @@ public class MybatisFlexConfig {
|
|||||||
//设置 SQL 审计收集器
|
//设置 SQL 审计收集器
|
||||||
AuditManager.setMessageCollector(auditMessage ->
|
AuditManager.setMessageCollector(auditMessage ->
|
||||||
log.info("[sql] time: {}, size: {}, sql:\n{}",
|
log.info("[sql] time: {}, size: {}, sql:\n{}",
|
||||||
auditMessage.getElapsedTime(), auditMessage.getQueryCount(), auditMessage.getFullSql())
|
auditMessage.getElapsedTime(), auditMessage.getQueryCount(), compressSql(auditMessage.getFullSql())));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 精简SQL:去除多余换行、制表符、连续空格,保留语法必需空格
|
||||||
|
*
|
||||||
|
* @param originalSql 原始带换行/空格的SQL
|
||||||
|
* @return 精简后的SQL
|
||||||
|
*/
|
||||||
|
public static String compressSql(String originalSql) {
|
||||||
|
if (StrUtil.isBlank(originalSql)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
// 1. 替换所有换行、制表符为单个空格
|
||||||
|
String tempSql = originalSql.replaceAll("\\r\\n|\\r|\\n|\\t", " ");
|
||||||
|
// 2. 替换多个连续空格为单个空格
|
||||||
|
tempSql = tempSql.replaceAll("\\s+", " ");
|
||||||
|
// 3. 去除首尾空格
|
||||||
|
return tempSql.trim();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user