
cn.mybatisboost.metric.MetricInterceptor Maven / Gradle / Ivy
The newest version!
package cn.mybatisboost.metric;
import cn.mybatisboost.core.Configuration;
import org.apache.commons.lang3.time.StopWatch;
import org.apache.ibatis.executor.statement.StatementHandler;
import org.apache.ibatis.mapping.BoundSql;
import org.apache.ibatis.mapping.ParameterMapping;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.SystemMetaObject;
import org.apache.ibatis.session.ResultHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.function.BiConsumer;
@Intercepts({
@Signature(type = StatementHandler.class, method = "batch", args = {Statement.class}),
@Signature(type = StatementHandler.class, method = "update", args = {Statement.class}),
@Signature(type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class})})
public class MetricInterceptor implements Interceptor {
private static Logger logger = LoggerFactory.getLogger(MetricInterceptor.class);
private Configuration configuration;
public MetricInterceptor(Configuration configuration) {
this.configuration = configuration;
}
@Override
public Object intercept(Invocation invocation) throws Throwable {
BoundSql boundSql = ((StatementHandler) invocation.getTarget()).getBoundSql();
String sql = boundSql.getSql().replaceAll("\\s*\\n\\s*", " ");
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy