{"id":11637,"date":"2024-03-14T14:27:58","date_gmt":"2024-03-14T14:27:58","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/"},"modified":"2025-08-04T14:46:16","modified_gmt":"2025-08-04T14:46:16","slug":"how-to-obtain-the-table-name-in-mybatis-interceptor","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/","title":{"rendered":"Get Table Names in MyBatis Interceptor"},"content":{"rendered":"<p>MyBatis Interceptor is a mechanism provided by MyBatis that allows for intercepting and handling before and after the execution of SQL statements. To retrieve the table name in the Interceptor, you can use the following method:<\/p>\n<p>In the intercept method of Interceptor, we can obtain the BoundSql object, which contains the executed SQL statement and parameter information.<\/p>\n<pre class=\"post-pre\"><code class=\"lang-java\">@Override\r\npublic Object intercept(Invocation invocation) throws Throwable {\r\n    MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0];\r\n    BoundSql boundSql = mappedStatement.getBoundSql(invocation.getArgs()[1]);\r\n\r\n    String sql = boundSql.getSql();\r\n    \/\/ \u83b7\u53d6\u8868\u540d\r\n    String tableName = extractTableName(sql);\r\n\r\n    return invocation.proceed();\r\n}\r\n<\/code><\/pre>\n<p>Write a method to extract table names from SQL statements, which can be achieved through regular expressions or other methods.<\/p>\n<pre class=\"post-pre\"><code class=\"lang-java\">private String extractTableName(String sql) {\r\n    String tableName = null;\r\n    Pattern pattern = Pattern.compile(\"FROM\\\\s+([^\\\\s]+)\\\\s*|JOIN\\\\s+([^\\\\s]+)\\\\s*|UPDATE\\\\s+([^\\\\s]+)\\\\s*|INTO\\\\s+([^\\\\s]+)\\\\s*\");\r\n    Matcher matcher = pattern.matcher(sql);\r\n    while (matcher.find()) {\r\n        tableName = matcher.group(1);\r\n        if (StringUtils.isNotBlank(tableName)) {\r\n            break;\r\n        }\r\n    }\r\n    return tableName;\r\n}\r\n<\/code><\/pre>\n<p>Configure Interceptors in the MyBatis configuration file, and apply them to the desired Mapper or Statement.<\/p>\n<pre class=\"post-pre\"><code class=\"lang-xml\">&lt;plugins&gt;\r\n    &lt;plugin interceptor=\"com.example.MyInterceptor\"&gt;\r\n        &lt;!-- \u914d\u7f6eInterceptor --&gt;\r\n    &lt;\/plugin&gt;\r\n&lt;\/plugins&gt;\r\n<\/code><\/pre>\n<p>By following the above steps, it is possible to retrieve the executed SQL statement in MyBatis Interceptor and extract the table name from it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MyBatis Interceptor is a mechanism provided by MyBatis that allows for intercepting and handling before and after the execution of SQL statements. To retrieve the table name in the Interceptor, you can use the following method: In the intercept method of Interceptor, we can obtain the BoundSql object, which contains the executed SQL statement and [&hellip;]<\/p>\n","protected":false},"author":10,"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":[7774,87,1459,125,15038],"class_list":["post-11637","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-interceptor","tag-java","tag-mybatis","tag-sql","tag-table-name"],"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>Get Table Names in MyBatis Interceptor - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to extract table names using MyBatis interceptor with BoundSql objects. Complete guide for SQL statement interception.\" \/>\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-obtain-the-table-name-in-mybatis-interceptor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Get Table Names in MyBatis Interceptor\" \/>\n<meta property=\"og:description\" content=\"Learn how to extract table names using MyBatis interceptor with BoundSql objects. Complete guide for SQL statement interception.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/\" \/>\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-14T14:27:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T14:46:16+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\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=\"Jackson Davis\" \/>\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-obtain-the-table-name-in-mybatis-interceptor\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"Get Table Names in MyBatis Interceptor\",\"datePublished\":\"2024-03-14T14:27:58+00:00\",\"dateModified\":\"2025-08-04T14:46:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/\"},\"wordCount\":123,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"interceptor\",\"Java\",\"MyBatis\",\"SQL\",\"Table Name\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/\",\"name\":\"Get Table Names in MyBatis Interceptor - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T14:27:58+00:00\",\"dateModified\":\"2025-08-04T14:46:16+00:00\",\"description\":\"Learn how to extract table names using MyBatis interceptor with BoundSql objects. Complete guide for SQL statement interception.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get Table Names in MyBatis Interceptor\"}]},{\"@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\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Get Table Names in MyBatis Interceptor - Blog - Silicon Cloud","description":"Learn how to extract table names using MyBatis interceptor with BoundSql objects. Complete guide for SQL statement interception.","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-obtain-the-table-name-in-mybatis-interceptor\/","og_locale":"en_US","og_type":"article","og_title":"Get Table Names in MyBatis Interceptor","og_description":"Learn how to extract table names using MyBatis interceptor with BoundSql objects. Complete guide for SQL statement interception.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T14:27:58+00:00","article_modified_time":"2025-08-04T14:46:16+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"Get Table Names in MyBatis Interceptor","datePublished":"2024-03-14T14:27:58+00:00","dateModified":"2025-08-04T14:46:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/"},"wordCount":123,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["interceptor","Java","MyBatis","SQL","Table Name"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/","name":"Get Table Names in MyBatis Interceptor - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T14:27:58+00:00","dateModified":"2025-08-04T14:46:16+00:00","description":"Learn how to extract table names using MyBatis interceptor with BoundSql objects. Complete guide for SQL statement interception.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-obtain-the-table-name-in-mybatis-interceptor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Get Table Names in MyBatis Interceptor"}]},{"@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\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11637","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=11637"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11637\/revisions"}],"predecessor-version":[{"id":155418,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11637\/revisions\/155418"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=11637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=11637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=11637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}