diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/audit/AuditManager.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/audit/AuditManager.java index 9386bf8d..e7b67226 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/audit/AuditManager.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/audit/AuditManager.java @@ -28,10 +28,18 @@ import java.util.Map; */ public class AuditManager { + private static boolean auditEnable = false; private static Clock clock = System::currentTimeMillis; private static MessageCreator messageCreator = new DefaultMessageCreator(); private static MessageCollector messageCollector = new ScheduledMessageCollector(); + public static boolean isAuditEnable() { + return auditEnable; + } + + public static void setAuditEnable(boolean auditEnable) { + AuditManager.auditEnable = auditEnable; + } public static Clock getClock() { return clock; diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexStatementHandler.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexStatementHandler.java index 0ebc356f..4a5aede3 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexStatementHandler.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/mybatis/FlexStatementHandler.java @@ -43,6 +43,7 @@ public class FlexStatementHandler implements StatementHandler { private final StatementHandler delegate; private final BoundSql boundSql; + private final boolean auditEnable = AuditManager.isAuditEnable(); public FlexStatementHandler(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) { @@ -77,25 +78,32 @@ public class FlexStatementHandler implements StatementHandler { @Override public void batch(Statement statement) throws SQLException { - AuditManager.startAudit(() -> { + if (auditEnable) { + AuditManager.startAudit(() -> { + delegate.batch(statement); + return null; + }, boundSql); + } else { delegate.batch(statement); - return null; - }, boundSql); + } } @Override public int update(Statement statement) throws SQLException { - return AuditManager.startAudit(() -> delegate.update(statement), boundSql); + return auditEnable ? AuditManager.startAudit(() -> delegate.update(statement), boundSql) + : delegate.update(statement); } @Override public List query(Statement statement, ResultHandler resultHandler) throws SQLException { - return AuditManager.startAudit(() -> delegate.query(statement, resultHandler), boundSql); + return auditEnable ? AuditManager.startAudit(() -> delegate.query(statement, resultHandler), boundSql) + : delegate.query(statement, resultHandler); } @Override public Cursor queryCursor(Statement statement) throws SQLException { - return AuditManager.startAudit(() -> delegate.queryCursor(statement), boundSql); + return auditEnable ? AuditManager.startAudit(() -> delegate.queryCursor(statement), boundSql) + : delegate.queryCursor(statement); } @Override