{"id":16470,"date":"2024-03-15T13:03:01","date_gmt":"2024-03-15T13:03:01","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/"},"modified":"2025-08-07T03:14:06","modified_gmt":"2025-08-07T03:14:06","slug":"how-to-implement-sql-interceptor-in-mybatis-plus","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/","title":{"rendered":"How to implement SQL interceptor in MyBatis Plus?"},"content":{"rendered":"<p>To implement SQL interceptor in Mybatis Plus, you can follow these steps:<\/p>\n<ol>\n<li>a person or thing that intercepts<\/li>\n<li>Interceptor for MySql<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MySqlInterceptor<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title class_\">Interceptor<\/span> {\r\n    \r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> Object <span class=\"hljs-title function_\">intercept<\/span><span class=\"hljs-params\">(Invocation invocation)<\/span> <span class=\"hljs-keyword\">throws<\/span> Throwable {\r\n        <span class=\"hljs-comment\">\/\/ \u62e6\u622a SQL \u6267\u884c\u524d\u7684\u64cd\u4f5c<\/span>\r\n        <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n        \r\n        <span class=\"hljs-comment\">\/\/ \u8c03\u7528\u539f\u59cb\u7684\u65b9\u6cd5<\/span>\r\n        <span class=\"hljs-type\">Object<\/span> <span class=\"hljs-variable\">result<\/span> <span class=\"hljs-operator\">=<\/span> invocation.proceed();\r\n        \r\n        <span class=\"hljs-comment\">\/\/ \u62e6\u622a SQL \u6267\u884c\u540e\u7684\u64cd\u4f5c<\/span>\r\n        <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n        \r\n        <span class=\"hljs-keyword\">return<\/span> result;\r\n    }\r\n    \r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> Object <span class=\"hljs-title function_\">plugin<\/span><span class=\"hljs-params\">(Object target)<\/span> {\r\n        <span class=\"hljs-keyword\">return<\/span> Plugin.wrap(target, <span class=\"hljs-built_in\">this<\/span>);\r\n    }\r\n    \r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">setProperties<\/span><span class=\"hljs-params\">(Properties properties)<\/span> {\r\n        <span class=\"hljs-comment\">\/\/ \u8bbe\u7f6e\u62e6\u622a\u5668\u7684\u5c5e\u6027<\/span>\r\n        <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>configuration file for MyBatis Plus<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">configuration<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">interceptors<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">interceptor<\/span>&gt;<\/span>\r\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">typeHandlers<\/span>&gt;<\/span>\r\n                <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">typeHandler<\/span> <span class=\"hljs-attr\">handler<\/span>=<span class=\"hljs-string\">\"com.example.MySqlInterceptor\"<\/span>\/&gt;<\/span>\r\n            <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">typeHandlers<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">interceptor<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">interceptors<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">configuration<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Configure interceptors in the MyBatis Plus configuration class.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Configuration<\/span>\r\n<span class=\"hljs-meta\">@MapperScan(\"com.example.mapper\")<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MybatisPlusConfig<\/span> {\r\n    \r\n    <span class=\"hljs-meta\">@Bean<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> Interceptor <span class=\"hljs-title function_\">mySqlInterceptor<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">MySqlInterceptor<\/span>();\r\n    }\r\n    \r\n    <span class=\"hljs-meta\">@Autowired<\/span>\r\n    <span class=\"hljs-keyword\">private<\/span> Interceptor mySqlInterceptor;\r\n    \r\n    <span class=\"hljs-meta\">@Bean<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> MybatisPlusInterceptor <span class=\"hljs-title function_\">mybatisPlusInterceptor<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-type\">MybatisPlusInterceptor<\/span> <span class=\"hljs-variable\">interceptor<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">MybatisPlusInterceptor<\/span>();\r\n        interceptor.addInnerInterceptor(mySqlInterceptor);\r\n        <span class=\"hljs-keyword\">return<\/span> interceptor;\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In this way, MySqlInterceptor will intercept SQL operations executed in Mybatis Plus. You can implement specific interception logic in the intercept method, such as recording SQL execution time and modifying SQL conditions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To implement SQL interceptor in Mybatis Plus, you can follow these steps: a person or thing that intercepts Interceptor for MySql public class MySqlInterceptor implements Interceptor { @Override public Object intercept(Invocation invocation) throws Throwable { \/\/ \u62e6\u622a SQL \u6267\u884c\u524d\u7684\u64cd\u4f5c \/\/ &#8230; \/\/ \u8c03\u7528\u539f\u59cb\u7684\u65b9\u6cd5 Object result = invocation.proceed(); \/\/ \u62e6\u622a SQL \u6267\u884c\u540e\u7684\u64cd\u4f5c \/\/ &#8230; return result; [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[453,1402,299,1404,1403],"class_list":["post-16470","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-development","tag-guide","tag-programming","tag-technology","tag-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to implement SQL interceptor in MyBatis Plus? - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn about how to implement sql interceptor in mybatis plus?. Comprehensive guide with examples and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to implement SQL interceptor in MyBatis Plus?\" \/>\n<meta property=\"og:description\" content=\"Learn about how to implement sql interceptor in mybatis plus?. Comprehensive guide with examples and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T13:03:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-07T03:14:06+00:00\" \/>\n<meta name=\"author\" content=\"Emily Johnson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emily Johnson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/\"},\"author\":{\"name\":\"Emily Johnson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\"},\"headline\":\"How to implement SQL interceptor in MyBatis Plus?\",\"datePublished\":\"2024-03-15T13:03:01+00:00\",\"dateModified\":\"2025-08-07T03:14:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/\"},\"wordCount\":74,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Development\",\"guide\",\"programming\",\"technology\",\"tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/\",\"name\":\"How to implement SQL interceptor in MyBatis Plus? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T13:03:01+00:00\",\"dateModified\":\"2025-08-07T03:14:06+00:00\",\"description\":\"Learn about how to implement sql interceptor in mybatis plus?. Comprehensive guide with examples and best practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to implement SQL interceptor in MyBatis Plus?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\",\"name\":\"Emily Johnson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"caption\":\"Emily Johnson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to implement SQL interceptor in MyBatis Plus? - Blog - Silicon Cloud","description":"Learn about how to implement sql interceptor in mybatis plus?. Comprehensive guide with examples and best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/","og_locale":"en_US","og_type":"article","og_title":"How to implement SQL interceptor in MyBatis Plus?","og_description":"Learn about how to implement sql interceptor in mybatis plus?. Comprehensive guide with examples and best practices.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T13:03:01+00:00","article_modified_time":"2025-08-07T03:14:06+00:00","author":"Emily Johnson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Emily Johnson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/"},"author":{"name":"Emily Johnson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378"},"headline":"How to implement SQL interceptor in MyBatis Plus?","datePublished":"2024-03-15T13:03:01+00:00","dateModified":"2025-08-07T03:14:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/"},"wordCount":74,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Development","guide","programming","technology","tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/","name":"How to implement SQL interceptor in MyBatis Plus? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T13:03:01+00:00","dateModified":"2025-08-07T03:14:06+00:00","description":"Learn about how to implement sql interceptor in mybatis plus?. Comprehensive guide with examples and best practices.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-sql-interceptor-in-mybatis-plus\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to implement SQL interceptor in MyBatis Plus?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378","name":"Emily Johnson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","caption":"Emily Johnson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=16470"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16470\/revisions"}],"predecessor-version":[{"id":50019,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16470\/revisions\/50019"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=16470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=16470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=16470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}