mybatis输出执行sql并替换?
mybatis.xml允许用户进行自定义插件plugins
插件需要实现Interceptor接口
代码如下:
MyBatisSQLMonitorPlugin.java
import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.RowBounds;
import java.util.Properties;
@Intercepts({
@Signature(type = Executor.class, method = "update", args = {
MappedStatement.class,
Object.class}),
@Signature(type = Executor.class, method = "query", args = {
MappedStatement.class,
Object.class, RowBounds.class, ResultHandler.class})})
public class SQLMonitorPlugin implements Interceptor {
public SQLMonitorPlugin() {
}
public Object intercept(Invocation invocation) throws Throwable {
return MyBatisSQLMonitorPlugin.intercept(invocation);
}
public Object plugin(Object target) {
return Plugin.wrap(target, this);
}