{"id":14007,"date":"2024-03-15T08:18:33","date_gmt":"2024-03-15T08:18:33","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/"},"modified":"2025-08-06T02:17:06","modified_gmt":"2025-08-06T02:17:06","slug":"how-should-mybatis-mapper-locations-be-configured","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/","title":{"rendered":"MyBatis Mapper Locations Configuration"},"content":{"rendered":"<p>In MyBatis, mapper-locations is an attribute used to configure the path of Mapper interface XML files. By setting up mapper-locations, you can instruct MyBatis where to find the XML files for Mapper interfaces.<\/p>\n<p>There are multiple ways to configure mapper-locations, such as using relative or absolute paths to specify the location of XML files. Here are some common examples of mapper-locations configurations.<\/p>\n<ol>\n<li>Use relative path:<\/li>\n<li>Create a bean called &#8220;sqlSessionFactory&#8221; of the class &#8220;org.mybatis.spring.SqlSessionFactoryBean&#8221; with the property &#8220;mapperLocations&#8221; set to the value &#8220;classpath:com\/example\/mappers\/*.xml&#8221;.<\/li>\n<li>In the example above, the value of mapper-locations is &#8220;classpath:com\/example\/mappers\/*.xml&#8221;, indicating that the XML files of Mapper interfaces are located in the com\/example\/mappers directory.<\/li>\n<li>Use the absolute path:<\/li>\n<li>Create a bean with the ID &#8220;sqlSessionFactory&#8221; using the class &#8220;org.mybatis.spring.SqlSessionFactoryBean&#8221; and set the location of the mapper files to &#8220;file:\/path\/to\/mappers\/*.xml&#8221;.<\/li>\n<li>In the above example, the value of mapper-locations is &#8220;file:\/path\/to\/mappers\/*.xml&#8221;, indicating that the XML files for the Mapper interfaces are located in the \/path\/to\/mappers directory.<\/li>\n<li>Match multiple paths using wildcards.<\/li>\n<li>The bean with the id &#8220;sqlSessionFactory&#8221; is defined using the class &#8220;org.mybatis.spring.SqlSessionFactoryBean&#8221; and the property &#8220;mapperLocations&#8221; is set with the value &#8220;classpath:com\/example\/mappers\/*\/*.xml&#8221;.<\/li>\n<li>In the example above, the value of mapper-locations is &#8220;classpath:com\/example\/mappers\/\/.xml&#8221;, indicating that the XML file for the Mapper interface is located in any subdirectory within the com\/example\/mappers directory.<\/li>\n<\/ol>\n<p>It is important to note that the mapper-locations can be configured with multiple paths, which can be separated by commas or semicolons. If there are multiple paths, MyBatis will search for XML files in the specified order until it finds one.<\/p>\n<p>I hope the above information is helpful to you!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In MyBatis, mapper-locations is an attribute used to configure the path of Mapper interface XML files. By setting up mapper-locations, you can instruct MyBatis where to find the XML files for Mapper interfaces. There are multiple ways to configure mapper-locations, such as using relative or absolute paths to specify the location of XML files. Here [&hellip;]<\/p>\n","protected":false},"author":12,"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":[2797,18857,1459,2689,3134],"class_list":["post-14007","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-java-orm","tag-mapper-locations","tag-mybatis","tag-mybatis-configuration","tag-sql-mapping"],"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>MyBatis Mapper Locations Configuration - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to configure MyBatis mapper-locations with XML path examples. Optimize your SQL mapping setup today.\" \/>\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-should-mybatis-mapper-locations-be-configured\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MyBatis Mapper Locations Configuration\" \/>\n<meta property=\"og:description\" content=\"Learn how to configure MyBatis mapper-locations with XML path examples. Optimize your SQL mapping setup today.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/\" \/>\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-15T08:18:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-06T02:17:06+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\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=\"Liam\" \/>\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-should-mybatis-mapper-locations-be-configured\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"MyBatis Mapper Locations Configuration\",\"datePublished\":\"2024-03-15T08:18:33+00:00\",\"dateModified\":\"2025-08-06T02:17:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/\"},\"wordCount\":305,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Java ORM\",\"mapper locations\",\"MyBatis\",\"MyBatis configuration\",\"SQL mapping\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/\",\"name\":\"MyBatis Mapper Locations Configuration - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T08:18:33+00:00\",\"dateModified\":\"2025-08-06T02:17:06+00:00\",\"description\":\"Learn how to configure MyBatis mapper-locations with XML path examples. Optimize your SQL mapping setup today.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MyBatis Mapper Locations Configuration\"}]},{\"@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\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MyBatis Mapper Locations Configuration - Blog - Silicon Cloud","description":"Learn how to configure MyBatis mapper-locations with XML path examples. Optimize your SQL mapping setup today.","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-should-mybatis-mapper-locations-be-configured\/","og_locale":"en_US","og_type":"article","og_title":"MyBatis Mapper Locations Configuration","og_description":"Learn how to configure MyBatis mapper-locations with XML path examples. Optimize your SQL mapping setup today.","og_url":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T08:18:33+00:00","article_modified_time":"2025-08-06T02:17:06+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"MyBatis Mapper Locations Configuration","datePublished":"2024-03-15T08:18:33+00:00","dateModified":"2025-08-06T02:17:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/"},"wordCount":305,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Java ORM","mapper locations","MyBatis","MyBatis configuration","SQL mapping"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/","url":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/","name":"MyBatis Mapper Locations Configuration - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T08:18:33+00:00","dateModified":"2025-08-06T02:17:06+00:00","description":"Learn how to configure MyBatis mapper-locations with XML path examples. Optimize your SQL mapping setup today.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-should-mybatis-mapper-locations-be-configured\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MyBatis Mapper Locations Configuration"}]},{"@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\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14007","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\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=14007"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14007\/revisions"}],"predecessor-version":[{"id":158017,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14007\/revisions\/158017"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=14007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=14007"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=14007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}