{"id":13199,"date":"2024-03-15T02:03:09","date_gmt":"2024-03-15T02:03:09","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/"},"modified":"2025-08-05T13:23:30","modified_gmt":"2025-08-05T13:23:30","slug":"how-to-pass-multiple-parameters-in-mybatis","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/","title":{"rendered":"MyBatis: Pass Multiple Parameters Easily"},"content":{"rendered":"<p>There are several ways to pass multiple parameters in MyBatis.<\/p>\n<ol>\n<li>Using a Map as a parameter: multiple parameters can be encapsulated into a Map, which is then passed as a parameter to MyBatis&#8217; SQL statements. The corresponding parameter values can be accessed in the SQL statements using the key.<\/li>\n<\/ol>\n<p>For example, create a Map and assign multiple parameters to it.<\/p>\n<pre class=\"post-pre\"><code>Map&lt;String, Object&gt; params = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">HashMap<\/span>&lt;&gt;();\r\nparams.put(<span class=\"hljs-string\">\"param1\"<\/span>, value1);\r\nparams.put(<span class=\"hljs-string\">\"param2\"<\/span>, value2);\r\n<\/code><\/pre>\n<p>Then, retrieve the parameter value through key in the SQL statement of MyBatis.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">select<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"selectByExample\"<\/span> <span class=\"hljs-attr\">parameterType<\/span>=<span class=\"hljs-string\">\"java.util.Map\"<\/span> <span class=\"hljs-attr\">resultMap<\/span>=<span class=\"hljs-string\">\"BaseResultMap\"<\/span>&gt;<\/span>\r\n    SELECT * FROM your_table WHERE column1 = #{param1} AND column2 = #{param2}\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">select<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>By using the @Param annotation, you can specify a name for each parameter and pass multiple parameters in order to the SQL statement in MyBatis. The parameter values can then be retrieved in the SQL statement using the specified names.<\/li>\n<\/ol>\n<p>For example, define a method and specify parameter names using the @Param annotation.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Select(\"SELECT * FROM your_table WHERE column1 = #{param1} AND column2 = #{param2}\")<\/span>\r\nList&lt;YourEntity&gt; <span class=\"hljs-title function_\">selectByParams<\/span><span class=\"hljs-params\">(<span class=\"hljs-meta\">@Param(\"param1\")<\/span> Object param1, <span class=\"hljs-meta\">@Param(\"param2\")<\/span> Object param2)<\/span>;\r\n<\/code><\/pre>\n<ol>\n<li>Using JavaBean as a parameter: you can encapsulate multiple parameters into a single JavaBean, then pass the JavaBean as a parameter to MyBatis SQL statements. Within the SQL statement, you can retrieve the corresponding parameter values by using the JavaBean&#8217;s property name.<\/li>\n<\/ol>\n<p>For example, define a JavaBean and set multiple parameters.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MyBean<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> Object param1;\r\n    <span class=\"hljs-keyword\">private<\/span> Object param2;\r\n    <span class=\"hljs-comment\">\/\/ getter and setter<\/span>\r\n}\r\n\r\n<span class=\"hljs-type\">MyBean<\/span> <span class=\"hljs-variable\">bean<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">MyBean<\/span>();\r\nbean.setParam1(value1);\r\nbean.setParam2(value2);\r\n<\/code><\/pre>\n<p>Then, in the SQL statement of MyBatis, retrieve the parameter value using the JavaBean&#8217;s property name.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">select<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"selectByBean\"<\/span> <span class=\"hljs-attr\">parameterType<\/span>=<span class=\"hljs-string\">\"your.package.MyBean\"<\/span> <span class=\"hljs-attr\">resultMap<\/span>=<span class=\"hljs-string\">\"BaseResultMap\"<\/span>&gt;<\/span>\r\n    SELECT * FROM your_table WHERE column1 = #{param1} AND column2 = #{param2}\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">select<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>Here are some common ways to pass multiple parameters, choose the most suitable method based on the actual situation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are several ways to pass multiple parameters in MyBatis. Using a Map as a parameter: multiple parameters can be encapsulated into a Map, which is then passed as a parameter to MyBatis&#8217; SQL statements. The corresponding parameter values can be accessed in the SQL statements using the key. For example, create a Map 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":[2688,10577,1459,17508,3134],"class_list":["post-13199","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-java-persistence","tag-multiple-parameters","tag-mybatis","tag-mybatis-query-parameters","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: Pass Multiple Parameters Easily - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn 3 effective methods to pass multiple parameters in MyBatis. Step-by-step Map usage tutorial with practical examples.\" \/>\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-pass-multiple-parameters-in-mybatis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MyBatis: Pass Multiple Parameters Easily\" \/>\n<meta property=\"og:description\" content=\"Learn 3 effective methods to pass multiple parameters in MyBatis. Step-by-step Map usage tutorial with practical examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/\" \/>\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-15T02:03:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-05T13:23:30+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-pass-multiple-parameters-in-mybatis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"MyBatis: Pass Multiple Parameters Easily\",\"datePublished\":\"2024-03-15T02:03:09+00:00\",\"dateModified\":\"2025-08-05T13:23:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/\"},\"wordCount\":219,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Java persistence\",\"Multiple Parameters\",\"MyBatis\",\"MyBatis query parameters\",\"SQL mapping\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/\",\"name\":\"MyBatis: Pass Multiple Parameters Easily - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T02:03:09+00:00\",\"dateModified\":\"2025-08-05T13:23:30+00:00\",\"description\":\"Learn 3 effective methods to pass multiple parameters in MyBatis. Step-by-step Map usage tutorial with practical examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MyBatis: Pass Multiple Parameters Easily\"}]},{\"@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":"MyBatis: Pass Multiple Parameters Easily - Blog - Silicon Cloud","description":"Learn 3 effective methods to pass multiple parameters in MyBatis. Step-by-step Map usage tutorial with practical examples.","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-pass-multiple-parameters-in-mybatis\/","og_locale":"en_US","og_type":"article","og_title":"MyBatis: Pass Multiple Parameters Easily","og_description":"Learn 3 effective methods to pass multiple parameters in MyBatis. Step-by-step Map usage tutorial with practical examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T02:03:09+00:00","article_modified_time":"2025-08-05T13:23:30+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-pass-multiple-parameters-in-mybatis\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"MyBatis: Pass Multiple Parameters Easily","datePublished":"2024-03-15T02:03:09+00:00","dateModified":"2025-08-05T13:23:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/"},"wordCount":219,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Java persistence","Multiple Parameters","MyBatis","MyBatis query parameters","SQL mapping"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/","name":"MyBatis: Pass Multiple Parameters Easily - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T02:03:09+00:00","dateModified":"2025-08-05T13:23:30+00:00","description":"Learn 3 effective methods to pass multiple parameters in MyBatis. Step-by-step Map usage tutorial with practical examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-pass-multiple-parameters-in-mybatis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MyBatis: Pass Multiple Parameters Easily"}]},{"@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\/13199","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=13199"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13199\/revisions"}],"predecessor-version":[{"id":157094,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13199\/revisions\/157094"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=13199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=13199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=13199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}