日志优化

This commit is contained in:
iqudoo
2026-04-12 16:24:12 +08:00
parent 4bddff2de9
commit 6ecdf66eeb
4 changed files with 149 additions and 40 deletions

View File

@@ -56,12 +56,14 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
@SuppressWarnings("DuplicatedCode")
@Override
public boolean modelExampleClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
PrimitiveTypeWrapper integerWrapper = FullyQualifiedJavaType.getIntInstance().getPrimitiveTypeWrapper();
FullyQualifiedJavaType integerType = new FullyQualifiedJavaType("java.lang.Integer");
FullyQualifiedJavaType booleanType = new FullyQualifiedJavaType("java.lang.Boolean");
FullyQualifiedJavaType stringType = new FullyQualifiedJavaType("java.lang.String");
// 添加 startPageNum、maxPageSize、ignorePageSize 字段
Field maxPageSizeField = ElementTools.generateField(
"maxPageSize",
JavaVisibility.PROTECTED,
integerWrapper,
integerType,
this.maxPageSize + ""
);
topLevelClass.addField(maxPageSizeField);
@@ -69,7 +71,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Field ignorePageSizeField = ElementTools.generateField(
"ignorePageSize",
JavaVisibility.PROTECTED,
integerWrapper,
integerType,
this.ignorePageSize + ""
);
topLevelClass.addField(ignorePageSizeField);
@@ -77,7 +79,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Field startPageNumField = ElementTools.generateField(
"startPageNum",
JavaVisibility.PROTECTED,
integerWrapper,
integerType,
startPageNum + ""
);
topLevelClass.addField(startPageNumField);
@@ -86,7 +88,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Field offsetField = ElementTools.generateField(
"offset",
JavaVisibility.PROTECTED,
integerWrapper,
integerType,
"null"
);
topLevelClass.addField(offsetField);
@@ -94,7 +96,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Field rowsField = ElementTools.generateField(
"rows",
JavaVisibility.PROTECTED,
integerWrapper,
integerType,
"null"
);
topLevelClass.addField(rowsField);
@@ -105,7 +107,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Field withBLOBsField = ElementTools.generateField(
"withBLOBs",
JavaVisibility.PROTECTED,
new FullyQualifiedJavaType("java.lang.Boolean"),
booleanType,
"true"
);
topLevelClass.addField(withBLOBsField);
@@ -142,7 +144,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
"limit",
JavaVisibility.PUBLIC,
topLevelClass.getType(),
new Parameter(integerWrapper, "rows")
new Parameter(integerType, "rows")
);
setLimitByRows = ElementTools.generateMethodBody(
setLimitByRows,
@@ -156,8 +158,8 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
"limit",
JavaVisibility.PUBLIC,
topLevelClass.getType(),
new Parameter(integerWrapper, "offset"),
new Parameter(integerWrapper, "rows")
new Parameter(integerType, "offset"),
new Parameter(integerType, "rows")
);
setLimitByOffsetRows = ElementTools.generateMethodBody(
setLimitByOffsetRows,
@@ -171,8 +173,8 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
"usePage",
JavaVisibility.PUBLIC,
topLevelClass.getType(),
new Parameter(integerWrapper, "pageNum"),
new Parameter(integerWrapper, "pageSize")
new Parameter(integerType, "pageNum"),
new Parameter(integerType, "pageSize")
);
usePage = ElementTools.generateMethodBody(
usePage,
@@ -194,7 +196,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Method getPageNum = ElementTools.generateMethod(
"getPageNum",
JavaVisibility.PUBLIC,
integerWrapper
integerType
);
getPageNum = ElementTools.generateMethodBody(
getPageNum,
@@ -208,7 +210,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Method getPageSize = ElementTools.generateMethod(
"getPageSize",
JavaVisibility.PUBLIC,
integerWrapper
integerType
);
getPageSize = ElementTools.generateMethodBody(
getPageSize,
@@ -222,7 +224,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Method getRows = ElementTools.generateMethod(
"getRows",
JavaVisibility.PUBLIC,
integerWrapper
integerType
);
getRows = ElementTools.generateMethodBody(
getRows,
@@ -233,7 +235,7 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
Method getOffset = ElementTools.generateMethod(
"getOffset",
JavaVisibility.PUBLIC,
integerWrapper
integerType
);
getOffset = ElementTools.generateMethodBody(
getOffset,
@@ -241,14 +243,65 @@ public class TapeMybatisGeneratorPlugin extends PluginAdapter {
);
FormatTools.addMethodWithBestPosition(topLevelClass, getOffset);
Method getWhereString = ElementTools.generateMethod(
"getWhereString",
JavaVisibility.PUBLIC,
stringType
);
getWhereString.addAnnotation("@SuppressWarnings(\"DuplicatedCode\")");
getWhereString = ElementTools.generateMethodBody(
getWhereString,
"if (getOredCriteria() != null) {",
"List<String> whereGroup = new ArrayList<>();",
"for (Criteria criteria : getOredCriteria()) {",
"List<String> criterionList = new ArrayList<>();",
"for (Criterion criterion : criteria.getAllCriteria()) {",
"if (criterion.isNoValue()) {",
"criterionList.add(criterion.getCondition());",
"} else if (criterion.isBetweenValue()) {",
"criterionList.add(criterion.getCondition() + \" \" + criterion.getValue() + \",\" + criterion.getSecondValue());",
"} else {",
"criterionList.add(criterion.getCondition() + \" \" + criterion.getValue());",
"}",
"}",
"whereGroup.add(String.join(\" and \", criterionList));",
"}",
"if (whereGroup.size() > 1) {",
"List<String> mapWhereGroup = new ArrayList<>();",
"for (String where : whereGroup) {",
"mapWhereGroup.add(\"(\" + where + \")\");",
"}",
"whereGroup = mapWhereGroup;",
"}",
"return String.join(\" or \", whereGroup);",
"}",
"return null;"
);
FormatTools.addMethodWithBestPosition(topLevelClass, getWhereString);
// !!! clear 方法增加 offset 和 rows的清理
boolean hasClear = false;
List<Method> methodList = topLevelClass.getMethods();
for (Method method : methodList) {
if (method.getName().equals("clear")) {
method.addBodyLine("rows = null;");
method.addBodyLine("offset = null;");
hasClear = true;
}
}
if (!hasClear) {
Method clear = ElementTools.generateMethod(
"clear",
JavaVisibility.PUBLIC,
new FullyQualifiedJavaType("void")
);
clear = ElementTools.generateMethodBody(
clear,
"rows = null;",
"offset = null;"
);
FormatTools.addMethodWithBestPosition(topLevelClass, clear);
}
return true;
}

View File

@@ -832,9 +832,16 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
method.addBodyLine("}");
method.addBodyLine("long findPrimaryKeyTime = new Date().getTime() - startTime;");
method.addBodyLine("if (findPrimaryKeyTime > " + slowQueryLoggerTime + ") {");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " valid list primary key use long time: \" + findPrimaryKeyTime + \"ms\" +");
method.addBodyLine(" \"\\n\\t|-> criteria: \" + example.getOredCriteria() +");
method.addBodyLine(" \"\\n\\t|-> order by: \" + example.getOrderByClause() +");
method.addBodyLine("String exampleString = \"\";");
method.addBodyLine("if (example.getWhereString() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> where: \" + example.getWhereString();");
method.addBodyLine("}");
method.addBodyLine("if (example.getOrderByClause() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> order by: \" + example.getOrderByClause();");
method.addBodyLine("}");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " valid list primary key use long time\" +");
method.addBodyLine(" \"\\n\\t|-> time\" + findPrimaryKeyTime + \"ms\" +");
method.addBodyLine(" exampleString +");
method.addBodyLine(" \"\\n\\t|-----------------------------------\"");
method.addBodyLine(");");
method.addBodyLine("}");
@@ -857,9 +864,16 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
}
method.addBodyLine("long useTime = new Date().getTime() - startTime;");
method.addBodyLine("if (useTime > " + slowQueryLoggerTime + ") {");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " valid list use long time: \" + useTime + \"ms\" +");
method.addBodyLine(" \"\\n\\t|-> criteria: \" + example.getOredCriteria() +");
method.addBodyLine(" \"\\n\\t|-> order by: \" + example.getOrderByClause() +");
method.addBodyLine("String exampleString = \"\";");
method.addBodyLine("if (example.getWhereString() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> where: \" + example.getWhereString();");
method.addBodyLine("}");
method.addBodyLine("if (example.getOrderByClause() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> order by: \" + example.getOrderByClause();");
method.addBodyLine("}");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " valid list use long time\" +");
method.addBodyLine(" \"\\n\\t|-> time\" + useTime + \"ms\" +");
method.addBodyLine(" exampleString +");
method.addBodyLine(" \"\\n\\t|-----------------------------------\"");
method.addBodyLine(");");
method.addBodyLine("}");
@@ -889,9 +903,16 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
method.addBodyLine("}");
method.addBodyLine("long findPrimaryKeyTime = new Date().getTime() - startTime;");
method.addBodyLine("if (findPrimaryKeyTime > " + slowQueryLoggerTime + ") {");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " trash list primary key use long time: \" + findPrimaryKeyTime + \"ms\" +");
method.addBodyLine(" \"\\n\\t|-> criteria: \" + example.getOredCriteria() +");
method.addBodyLine(" \"\\n\\t|-> order by: \" + example.getOrderByClause() +");
method.addBodyLine("String exampleString = \"\";");
method.addBodyLine("if (example.getWhereString() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> where: \" + example.getWhereString();");
method.addBodyLine("}");
method.addBodyLine("if (example.getOrderByClause() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> order by: \" + example.getOrderByClause();");
method.addBodyLine("}");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " trash list primary key use long time\" +");
method.addBodyLine(" \"\\n\\t|-> time\" + findPrimaryKeyTime + \"ms\" +");
method.addBodyLine(" exampleString +");
method.addBodyLine(" \"\\n\\t|-----------------------------------\"");
method.addBodyLine(");");
method.addBodyLine("}");
@@ -914,9 +935,16 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
}
method.addBodyLine("long useTime = new Date().getTime() - startTime;");
method.addBodyLine("if (useTime > " + slowQueryLoggerTime + ") {");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " trash list use long time: \" + useTime + \"ms\" +");
method.addBodyLine(" \"\\n\\t|-> criteria: \" + example.getOredCriteria() +");
method.addBodyLine(" \"\\n\\t|-> order by: \" + example.getOrderByClause() +");
method.addBodyLine("String exampleString = \"\";");
method.addBodyLine("if (example.getWhereString() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> where: \" + example.getWhereString();");
method.addBodyLine("}");
method.addBodyLine("if (example.getOrderByClause() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> order by: \" + example.getOrderByClause();");
method.addBodyLine("}");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " trash list use long time\" +");
method.addBodyLine(" \"\\n\\t|-> time\" + useTime + \"ms\" +");
method.addBodyLine(" exampleString +");
method.addBodyLine(" \"\\n\\t|-----------------------------------\"");
method.addBodyLine(");");
method.addBodyLine("}");
@@ -939,9 +967,16 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
method.addBodyLine("long count = " + mapperFieldName + ".countByExample(example);");
method.addBodyLine("long useTime = new Date().getTime() - startTime;");
method.addBodyLine("if (useTime > " + slowQueryLoggerTime + ") {");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " valid count use long time: \" + useTime + \"ms\" +");
method.addBodyLine(" \"\\n\\t|-> criteria: \" + example.getOredCriteria() +");
method.addBodyLine(" \"\\n\\t|-> order by: \" + example.getOrderByClause() +");
method.addBodyLine("String exampleString = \"\";");
method.addBodyLine("if (example.getWhereString() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> where: \" + example.getWhereString();");
method.addBodyLine("}");
method.addBodyLine("if (example.getOrderByClause() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> order by: \" + example.getOrderByClause();");
method.addBodyLine("}");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " valid count use long time\" +");
method.addBodyLine(" \"\\n\\t|-> time\" + useTime + \"ms\" +");
method.addBodyLine(" exampleString +");
method.addBodyLine(" \"\\n\\t|-----------------------------------\"");
method.addBodyLine(");");
method.addBodyLine("}");
@@ -982,9 +1017,16 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter {
method.addBodyLine("long count = " + mapperFieldName + ".countByExample(example);");
method.addBodyLine("long useTime = new Date().getTime() - startTime;");
method.addBodyLine("if (useTime > " + slowQueryLoggerTime + ") {");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " trash count use long time: \" + useTime + \"ms\" +");
method.addBodyLine(" \"\\n\\t|-> criteria: \" + example.getOredCriteria() +");
method.addBodyLine(" \"\\n\\t|-> order by: \" + example.getOrderByClause() +");
method.addBodyLine("String exampleString = \"\";");
method.addBodyLine("if (example.getWhereString() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> where: \" + example.getWhereString();");
method.addBodyLine("}");
method.addBodyLine("if (example.getOrderByClause() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> order by: \" + example.getOrderByClause();");
method.addBodyLine("}");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " trash count use long time\" +");
method.addBodyLine(" \"\\n\\t|-> time\" + useTime + \"ms\" +");
method.addBodyLine(" exampleString +");
method.addBodyLine(" \"\\n\\t|-----------------------------------\"");
method.addBodyLine(");");
method.addBodyLine("}");

View File

@@ -313,9 +313,16 @@ public class TapeRepoviewGeneratorPlugin extends PluginAdapter {
}
method.addBodyLine("long useTime = new Date().getTime() - startTime;");
method.addBodyLine("if (useTime > " + slowQueryLoggerTime + ") {");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " view list use long time: \" + useTime + \"ms\" +");
method.addBodyLine(" \"\\n\\t|-> criteria: \" + example.getOredCriteria() +");
method.addBodyLine(" \"\\n\\t|-> order by: \" + example.getOrderByClause() +");
method.addBodyLine("String exampleString = \"\";");
method.addBodyLine("if (example.getWhereString() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> where: \" + example.getWhereString();");
method.addBodyLine("}");
method.addBodyLine("if (example.getOrderByClause() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> order by: \" + example.getOrderByClause();");
method.addBodyLine("}");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " view list use long time\" +");
method.addBodyLine(" \"\\n\\t|-> time\" + useTime + \"ms\" +");
method.addBodyLine(" exampleString +");
method.addBodyLine(" \"\\n\\t|-----------------------------------\"");
method.addBodyLine(");");
method.addBodyLine("}");
@@ -340,9 +347,16 @@ public class TapeRepoviewGeneratorPlugin extends PluginAdapter {
method.addBodyLine("long count = " + mapperFieldName + ".countByExample(example);");
method.addBodyLine("long useTime = new Date().getTime() - startTime;");
method.addBodyLine("if (useTime > " + slowQueryLoggerTime + ") {");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " view count use long time: \" + useTime + \"ms\" +");
method.addBodyLine(" \"\\n\\t|-> criteria: \" + example.getOredCriteria() +");
method.addBodyLine(" \"\\n\\t|-> order by: \" + example.getOrderByClause() +");
method.addBodyLine("String exampleString = \"\";");
method.addBodyLine("if (example.getWhereString() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> where: \" + example.getWhereString();");
method.addBodyLine("}");
method.addBodyLine("if (example.getOrderByClause() != null) {");
method.addBodyLine("exampleString += \"\\n\\t|-> order by: \" + example.getOrderByClause();");
method.addBodyLine("}");
method.addBodyLine("LOGGER." + slowQueryLoggerLevel + "(\"Select " + modelClassName + " view count use long time\" +");
method.addBodyLine(" \"\\n\\t|-> time\" + useTime + \"ms\" +");
method.addBodyLine(" exampleString +");
method.addBodyLine(" \"\\n\\t|-----------------------------------\"");
method.addBodyLine(");");
method.addBodyLine("}");