{"id":22983,"date":"2024-03-16T00:40:01","date_gmt":"2024-03-16T00:40:01","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/"},"modified":"2024-03-22T00:10:50","modified_gmt":"2024-03-22T00:10:50","slug":"how-is-the-list-used-in-mybatis","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/","title":{"rendered":"How is the list used in MyBatis?"},"content":{"rendered":"<p>The list in MyBatis is used to perform batch operations in mapping files. It allows you to insert, update, or delete multiple objects from a parameter list at once. Here is an example of how to use the list in MyBatis:<\/p>\n<ol>\n<li>Insert multiple objects: You can use the foreach tag to loop through the objects in the list and insert them into the database.<\/li>\n<\/ol>\n<p>Example of mapping files:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">insert<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"insertUsers\"<\/span> <span class=\"hljs-attr\">parameterType<\/span>=<span class=\"hljs-string\">\"java.util.List\"<\/span>&gt;<\/span>\r\n  INSERT INTO users (id, name, age) VALUES\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">foreach<\/span> <span class=\"hljs-attr\">collection<\/span>=<span class=\"hljs-string\">\"list\"<\/span> <span class=\"hljs-attr\">item<\/span>=<span class=\"hljs-string\">\"user\"<\/span> <span class=\"hljs-attr\">separator<\/span>=<span class=\"hljs-string\">\",\"<\/span>&gt;<\/span>\r\n    (#{user.id}, #{user.name}, #{user.age})\r\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">foreach<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">insert<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>Example Java code:<\/p>\n<pre class=\"post-pre\"><code>List&lt;User&gt; userList = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;();\r\nuserList.add(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">User<\/span>(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Alice\"<\/span>, <span class=\"hljs-number\">20<\/span>));\r\nuserList.add(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">User<\/span>(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">\"Bob\"<\/span>, <span class=\"hljs-number\">25<\/span>));\r\nuserList.add(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">User<\/span>(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">\"Charlie\"<\/span>, <span class=\"hljs-number\">30<\/span>));\r\n\r\nsqlSession.insert(<span class=\"hljs-string\">\"insertUsers\"<\/span>, userList);\r\n<\/code><\/pre>\n<ol>\n<li>Update multiple objects: you can use the foreach tag to loop through the objects in the list and update the database.<\/li>\n<\/ol>\n<p>Example of mapping file:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">update<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"updateUsers\"<\/span> <span class=\"hljs-attr\">parameterType<\/span>=<span class=\"hljs-string\">\"java.util.List\"<\/span>&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">foreach<\/span> <span class=\"hljs-attr\">collection<\/span>=<span class=\"hljs-string\">\"list\"<\/span> <span class=\"hljs-attr\">item<\/span>=<span class=\"hljs-string\">\"user\"<\/span> <span class=\"hljs-attr\">separator<\/span>=<span class=\"hljs-string\">\";\"<\/span>&gt;<\/span>\r\n    UPDATE users SET name = #{user.name}, age = #{user.age} WHERE id = #{user.id}\r\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">foreach<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">update<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>Example Java code:<\/p>\n<pre class=\"post-pre\"><code>List&lt;User&gt; userList = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;();\r\nuserList.add(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">User<\/span>(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Alice\"<\/span>, <span class=\"hljs-number\">21<\/span>));\r\nuserList.add(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">User<\/span>(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-string\">\"Bob\"<\/span>, <span class=\"hljs-number\">26<\/span>));\r\nuserList.add(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">User<\/span>(<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-string\">\"Charlie\"<\/span>, <span class=\"hljs-number\">31<\/span>));\r\n\r\nsqlSession.update(<span class=\"hljs-string\">\"updateUsers\"<\/span>, userList);\r\n<\/code><\/pre>\n<ol>\n<li>Delete multiple objects: You can use a foreach tag to iterate through the objects in a list and delete the corresponding records in the database.<\/li>\n<\/ol>\n<p>Example of a mapping file:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">delete<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"deleteUsers\"<\/span> <span class=\"hljs-attr\">parameterType<\/span>=<span class=\"hljs-string\">\"java.util.List\"<\/span>&gt;<\/span>\r\n  DELETE FROM users WHERE id IN\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">foreach<\/span> <span class=\"hljs-attr\">collection<\/span>=<span class=\"hljs-string\">\"list\"<\/span> <span class=\"hljs-attr\">item<\/span>=<span class=\"hljs-string\">\"id\"<\/span> <span class=\"hljs-attr\">open<\/span>=<span class=\"hljs-string\">\"(\"<\/span> <span class=\"hljs-attr\">close<\/span>=<span class=\"hljs-string\">\")\"<\/span> <span class=\"hljs-attr\">separator<\/span>=<span class=\"hljs-string\">\",\"<\/span>&gt;<\/span>\r\n    #{id}\r\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">foreach<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">delete<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>Example Java code:<\/p>\n<pre class=\"post-pre\"><code>List&lt;Integer&gt; userIds = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;();\r\nuserIds.add(<span class=\"hljs-number\">1<\/span>);\r\nuserIds.add(<span class=\"hljs-number\">2<\/span>);\r\nuserIds.add(<span class=\"hljs-number\">3<\/span>);\r\n\r\nsqlSession.delete(<span class=\"hljs-string\">\"deleteUsers\"<\/span>, userIds);\r\n<\/code><\/pre>\n<p>These examples demonstrate how to perform batch operations using lists in MyBatis. When using the foreach tag in the mapping file, the collection attribute specifies the parameter list to iterate over, the item attribute specifies the object name in each iteration, and the separator attribute specifies the separator between each object.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The list in MyBatis is used to perform batch operations in mapping files. It allows you to insert, update, or delete multiple objects from a parameter list at once. Here is an example of how to use the list in MyBatis: Insert multiple objects: You can use the foreach tag to loop through the objects [&hellip;]<\/p>\n","protected":false},"author":8,"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-22983","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 is the list used in MyBatis? - 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-is-the-list-used-in-mybatis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How is the list used in MyBatis?\" \/>\n<meta property=\"og:description\" content=\"The list in MyBatis is used to perform batch operations in mapping files. It allows you to insert, update, or delete multiple objects from a parameter list at once. Here is an example of how to use the list in MyBatis: Insert multiple objects: You can use the foreach tag to loop through the objects [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-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-16T00:40:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T00:10:50+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\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=\"William Carter\" \/>\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-is-the-list-used-in-mybatis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"How is the list used in MyBatis?\",\"datePublished\":\"2024-03-16T00:40:01+00:00\",\"dateModified\":\"2024-03-22T00:10:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/\"},\"wordCount\":190,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/\",\"name\":\"How is the list used in MyBatis? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T00:40:01+00:00\",\"dateModified\":\"2024-03-22T00:10:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How is the list used in MyBatis?\"}]},{\"@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\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How is the list used in MyBatis? - 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-is-the-list-used-in-mybatis\/","og_locale":"en_US","og_type":"article","og_title":"How is the list used in MyBatis?","og_description":"The list in MyBatis is used to perform batch operations in mapping files. It allows you to insert, update, or delete multiple objects from a parameter list at once. Here is an example of how to use the list in MyBatis: Insert multiple objects: You can use the foreach tag to loop through the objects [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T00:40:01+00:00","article_modified_time":"2024-03-22T00:10:50+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"How is the list used in MyBatis?","datePublished":"2024-03-16T00:40:01+00:00","dateModified":"2024-03-22T00:10:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/"},"wordCount":190,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/","name":"How is the list used in MyBatis? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T00:40:01+00:00","dateModified":"2024-03-22T00:10:50+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-list-used-in-mybatis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How is the list used in MyBatis?"}]},{"@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\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22983","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=22983"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22983\/revisions"}],"predecessor-version":[{"id":56935,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22983\/revisions\/56935"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=22983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=22983"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=22983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}