|
@@ -0,0 +1,51 @@
|
|
|
+package com.baomidou.mybatisplus.test.plugins;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.plugins.SqlParserHandler;
|
|
|
+import org.apache.ibatis.executor.Executor;
|
|
|
+import org.apache.ibatis.executor.statement.StatementHandler;
|
|
|
+import org.apache.ibatis.mapping.MappedStatement;
|
|
|
+import org.apache.ibatis.plugin.Interceptor;
|
|
|
+import org.apache.ibatis.plugin.Intercepts;
|
|
|
+import org.apache.ibatis.plugin.Invocation;
|
|
|
+import org.apache.ibatis.plugin.Plugin;
|
|
|
+import org.apache.ibatis.plugin.Signature;
|
|
|
+import org.apache.ibatis.reflection.SystemMetaObject;
|
|
|
+import org.apache.ibatis.session.Configuration;
|
|
|
+import org.apache.ibatis.session.RowBounds;
|
|
|
+
|
|
|
+import java.util.Properties;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 自定义拦截器
|
|
|
+ * @author nieqiurong 2019/1/27.
|
|
|
+ */
|
|
|
+@Intercepts({@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})})
|
|
|
+public class CustomInterceptor extends SqlParserHandler implements Interceptor {
|
|
|
+
|
|
|
+ private Properties properties;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object intercept(Invocation invocation) throws Throwable {
|
|
|
+ Object[] args = invocation.getArgs();
|
|
|
+ MappedStatement ms = (MappedStatement) args[0];
|
|
|
+ Object parameter = args[1];
|
|
|
+ Configuration configuration = ms.getConfiguration();
|
|
|
+ Object target = invocation.getTarget();
|
|
|
+ StatementHandler handler = configuration.newStatementHandler((Executor) target, ms, parameter, RowBounds.DEFAULT, null, null);
|
|
|
+ this.sqlParser(SystemMetaObject.forObject(handler));
|
|
|
+ return invocation.proceed();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object plugin(Object target) {
|
|
|
+ if (target instanceof Executor) {
|
|
|
+ return Plugin.wrap(target, this);
|
|
|
+ }
|
|
|
+ return target;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void setProperties(Properties properties) {
|
|
|
+ this.properties = properties;
|
|
|
+ }
|
|
|
+}
|