{"id":21359,"date":"2024-03-15T21:57:20","date_gmt":"2024-03-15T21:57:20","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/"},"modified":"2024-03-21T20:17:51","modified_gmt":"2024-03-21T20:17:51","slug":"how-does-mybatis-execute-multiple-update-statements","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/","title":{"rendered":"How does MyBatis execute multiple update statements?"},"content":{"rendered":"<p>MyBatis offers two ways to execute multiple update statements: by using the `<foreach>` tag or by using batch operations.<\/p>\n<p>1. Utilizing the <foreach> tag.<\/p>\n<p>The <foreach> tag in MyBatis is used to iterate over collections and perform repetitive operations. It can be utilized to execute multiple update statements.<\/p>\n<pre class=\"post-pre\">&lt;update&nbsp;id=\"batchUpdate\"&nbsp;parameterType=\"java.util.List\"&gt;<p><\/p><p>&nbsp;&nbsp;&lt;foreach&nbsp;collection=\"list\"&nbsp;item=\"item\"&nbsp;index=\"index\"&nbsp;open=\"\"&nbsp;close=\"\"&nbsp;separator=\";\"&gt;<\/p><p>&nbsp;&nbsp;&nbsp;&nbsp;UPDATE&nbsp;your_table&nbsp;SET&nbsp;column1&nbsp;=&nbsp;#{item.column1},&nbsp;column2&nbsp;=&nbsp;#{item.column2}<\/p><p>&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;id&nbsp;=&nbsp;#{item.id}<\/p><p>&nbsp;&nbsp;&lt;\/foreach&gt;<\/p><p>&lt;\/update&gt;<\/p><\/pre>\n<p>In the example above, the `<foreach>` tag iterates through a List containing updated data and executes the update statement for each item.<\/p>\n<p>Afterwards, in your Java code, you can invoke the update statement and pass a List containing the data that needs to be updated.<\/p>\n<p>2. Use batch operation<\/p>\n<p>MyBatis also offers a more efficient way to execute multiple update statements, known as batch processing. Batch processing utilizes the database&#8217;s batch processing functionality to send multiple statements together for execution, reducing communication overhead.<\/p>\n<pre class=\"post-pre\">SqlSession&nbsp;sqlSession&nbsp;=&nbsp;sqlSessionFactory.openSession(ExecutorType.BATCH);<p><\/p><p>YourMapper&nbsp;mapper&nbsp;=&nbsp;sqlSession.getMapper(YourMapper.class);<\/p><p>List&lt;YourData&gt;&nbsp;dataList&nbsp;=&nbsp;new&nbsp;ArrayList&lt;&gt;();<\/p><p>\/\/&nbsp;\u6dfb\u52a0\u9700\u8981\u66f4\u65b0\u7684\u6570\u636e\u5230dataList<\/p><p>for&nbsp;(YourData&nbsp;data&nbsp;:&nbsp;dataList)&nbsp;{<\/p><p>&nbsp;&nbsp;mapper.update(data);<\/p><p>}<\/p><p>sqlSession.commit();<\/p><p>sqlSession.close();<\/p><\/pre>\n<p>In the example above, first a `SqlSession` using batch operations is created. Then, by obtaining the corresponding Mapper object, the `update` method can be called to execute each update statement. Finally, before committing the transaction and closing the `SqlSession`, the `commit` method must be called.<\/p>\n<p>Please make sure to enable batch processing when configuring MyBatis and optimize accordingly based on the database type.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MyBatis offers two ways to execute multiple update statements: by using the &#8220; tag or by using batch operations. 1. Utilizing the tag. The tag in MyBatis is used to iterate over collections and perform repetitive operations. It can be utilized to execute multiple update statements. &lt;update&nbsp;id=&#8221;batchUpdate&#8221;&nbsp;parameterType=&#8221;java.util.List&#8221;&gt;&nbsp;&nbsp;&lt;foreach&nbsp;collection=&#8221;list&#8221;&nbsp;item=&#8221;item&#8221;&nbsp;index=&#8221;index&#8221;&nbsp;open=&#8221;&#8221;&nbsp;close=&#8221;&#8221;&nbsp;separator=&#8221;;&#8221;&gt;&nbsp;&nbsp;&nbsp;&nbsp;UPDATE&nbsp;your_table&nbsp;SET&nbsp;column1&nbsp;=&nbsp;#{item.column1},&nbsp;column2&nbsp;=&nbsp;#{item.column2}&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;id&nbsp;=&nbsp;#{item.id}&nbsp;&nbsp;&lt;\/foreach&gt;&lt;\/update&gt; In the example above, the &#8220; tag iterates [&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-21359","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 does MyBatis execute multiple update statements? - 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-does-mybatis-execute-multiple-update-statements\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How does MyBatis execute multiple update statements?\" \/>\n<meta property=\"og:description\" content=\"MyBatis offers two ways to execute multiple update statements: by using the `` tag or by using batch operations. 1. Utilizing the tag. The tag in MyBatis is used to iterate over collections and perform repetitive operations. It can be utilized to execute multiple update statements. &lt;update&nbsp;id=&quot;batchUpdate&quot;&nbsp;parameterType=&quot;java.util.List&quot;&gt;&nbsp;&nbsp;&lt;foreach&nbsp;collection=&quot;list&quot;&nbsp;item=&quot;item&quot;&nbsp;index=&quot;index&quot;&nbsp;open=&quot;&quot;&nbsp;close=&quot;&quot;&nbsp;separator=&quot;;&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;UPDATE&nbsp;your_table&nbsp;SET&nbsp;column1&nbsp;=&nbsp;#{item.column1},&nbsp;column2&nbsp;=&nbsp;#{item.column2}&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;id&nbsp;=&nbsp;#{item.id}&nbsp;&nbsp;&lt;\/foreach&gt;&lt;\/update&gt; In the example above, the `` tag iterates [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/\" \/>\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-15T21:57:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T20:17:51+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-does-mybatis-execute-multiple-update-statements\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"How does MyBatis execute multiple update statements?\",\"datePublished\":\"2024-03-15T21:57:20+00:00\",\"dateModified\":\"2024-03-21T20:17:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/\"},\"wordCount\":196,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/\",\"name\":\"How does MyBatis execute multiple update statements? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T21:57:20+00:00\",\"dateModified\":\"2024-03-21T20:17:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How does MyBatis execute multiple update statements?\"}]},{\"@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 does MyBatis execute multiple update statements? - 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-does-mybatis-execute-multiple-update-statements\/","og_locale":"en_US","og_type":"article","og_title":"How does MyBatis execute multiple update statements?","og_description":"MyBatis offers two ways to execute multiple update statements: by using the `` tag or by using batch operations. 1. Utilizing the tag. The tag in MyBatis is used to iterate over collections and perform repetitive operations. It can be utilized to execute multiple update statements. &lt;update&nbsp;id=\"batchUpdate\"&nbsp;parameterType=\"java.util.List\"&gt;&nbsp;&nbsp;&lt;foreach&nbsp;collection=\"list\"&nbsp;item=\"item\"&nbsp;index=\"index\"&nbsp;open=\"\"&nbsp;close=\"\"&nbsp;separator=\";\"&gt;&nbsp;&nbsp;&nbsp;&nbsp;UPDATE&nbsp;your_table&nbsp;SET&nbsp;column1&nbsp;=&nbsp;#{item.column1},&nbsp;column2&nbsp;=&nbsp;#{item.column2}&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;id&nbsp;=&nbsp;#{item.id}&nbsp;&nbsp;&lt;\/foreach&gt;&lt;\/update&gt; In the example above, the `` tag iterates [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T21:57:20+00:00","article_modified_time":"2024-03-21T20:17:51+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-does-mybatis-execute-multiple-update-statements\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"How does MyBatis execute multiple update statements?","datePublished":"2024-03-15T21:57:20+00:00","dateModified":"2024-03-21T20:17:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/"},"wordCount":196,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/","url":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/","name":"How does MyBatis execute multiple update statements? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T21:57:20+00:00","dateModified":"2024-03-21T20:17:51+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-execute-multiple-update-statements\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How does MyBatis execute multiple update statements?"}]},{"@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\/21359","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=21359"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21359\/revisions"}],"predecessor-version":[{"id":55216,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21359\/revisions\/55216"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=21359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=21359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=21359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}