{"id":17547,"date":"2024-03-15T15:11:23","date_gmt":"2024-03-15T15:11:23","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/"},"modified":"2024-03-21T11:10:00","modified_gmt":"2024-03-21T11:10:00","slug":"how-can-mybatis-interceptors-retrieve-table-names-and-fields","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/","title":{"rendered":"How can MyBatis interceptors retrieve table names and fields?"},"content":{"rendered":"<p>There are several ways to obtain the table name and fields in MyBatis interceptors.<\/p>\n<ol>\n<li>Retrieve table name and fields using MappedStatement object:<br \/>\nIn the intercept method of the interceptor, obtain the parameters of the Mapper method through the getArgs method of the Invocation parameter, then get the MappedStatement object through the parameter, use the getId method of the MappedStatement object to obtain the fully qualified name of the Mapper method, and finally extract the table name and fields by parsing the fully qualified name of the Mapper method.<\/li>\n<li>To retrieve the table name and fields using the BoundSql object:<br \/>\nIn the interceptor&#8217;s intercept method, access the Mapper method&#8217;s parameters by using the getArgs method of the Invocation parameter. Then, obtain the BoundSql object through the parameter and retrieve the SQL statement of the Mapper method using the getSql method of the BoundSql object. Finally, parse the SQL statement to retrieve the table name and fields.<\/li>\n<li>Retrieve table name and fields using the ParameterHandler object:<br \/>\nIn the intercept method of the interceptor, we can use the getArgs method of the Invocation parameter to retrieve the parameters of the Mapper method. Then, we can obtain the ParameterHandler object through the parameters, and finally, we can obtain the Mapper method&#8217;s parameter object through the getParameterObject method of the ParameterHandler object, and then use reflection to get the table name and fields.<\/li>\n<\/ol>\n<p>It is important to note that all of the above methods require manually parsing and processing the retrieved table names and fields, as MyBatis does not provide a direct method to obtain this information. Additionally, parsing SQL statements to get table names and fields may be challenging due to variations in SQL syntax and formatting, as well as the presence of dynamic SQL. Therefore, it is advisable to select an appropriate method based on the specific circumstances to extract table names and fields.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are several ways to obtain the table name and fields in MyBatis interceptors. Retrieve table name and fields using MappedStatement object: In the intercept method of the interceptor, obtain the parameters of the Mapper method through the getArgs method of the Invocation parameter, then get the MappedStatement object through the parameter, use the getId [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-17547","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"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 can MyBatis interceptors retrieve table names and fields? - Blog - Silicon Cloud<\/title>\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-can-mybatis-interceptors-retrieve-table-names-and-fields\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How can MyBatis interceptors retrieve table names and fields?\" \/>\n<meta property=\"og:description\" content=\"There are several ways to obtain the table name and fields in MyBatis interceptors. Retrieve table name and fields using MappedStatement object: In the intercept method of the interceptor, obtain the parameters of the Mapper method through the getArgs method of the Invocation parameter, then get the MappedStatement object through the parameter, use the getId [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/\" \/>\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-15T15:11:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T11:10:00+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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"How can MyBatis interceptors retrieve table names and fields?\",\"datePublished\":\"2024-03-15T15:11:23+00:00\",\"dateModified\":\"2024-03-21T11:10:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/\"},\"wordCount\":323,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/\",\"name\":\"How can MyBatis interceptors retrieve table names and fields? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T15:11:23+00:00\",\"dateModified\":\"2024-03-21T11:10:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How can MyBatis interceptors retrieve table names and fields?\"}]},{\"@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":"How can MyBatis interceptors retrieve table names and fields? - Blog - Silicon Cloud","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-can-mybatis-interceptors-retrieve-table-names-and-fields\/","og_locale":"en_US","og_type":"article","og_title":"How can MyBatis interceptors retrieve table names and fields?","og_description":"There are several ways to obtain the table name and fields in MyBatis interceptors. Retrieve table name and fields using MappedStatement object: In the intercept method of the interceptor, obtain the parameters of the Mapper method through the getArgs method of the Invocation parameter, then get the MappedStatement object through the parameter, use the getId [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T15:11:23+00:00","article_modified_time":"2024-03-21T11:10:00+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":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"How can MyBatis interceptors retrieve table names and fields?","datePublished":"2024-03-15T15:11:23+00:00","dateModified":"2024-03-21T11:10:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/"},"wordCount":323,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/","url":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/","name":"How can MyBatis interceptors retrieve table names and fields? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T15:11:23+00:00","dateModified":"2024-03-21T11:10:00+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-can-mybatis-interceptors-retrieve-table-names-and-fields\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How can MyBatis interceptors retrieve table names and fields?"}]},{"@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\/17547","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=17547"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17547\/revisions"}],"predecessor-version":[{"id":51165,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17547\/revisions\/51165"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=17547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=17547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=17547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}