{"id":23135,"date":"2024-03-16T00:52:13","date_gmt":"2024-03-16T00:52:13","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/"},"modified":"2024-03-22T00:32:41","modified_gmt":"2024-03-22T00:32:41","slug":"what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/","title":{"rendered":"What is the principle behind implementing optimistic lock in MyBatis Plus?"},"content":{"rendered":"<p>The implementation principle of MyBatis-Plus optimistic lock is based on the optimistic lock mechanism in the database. Optimistic lock is a concurrency control strategy that assumes conflicts are rare during data operations, so it does not lock when reading data but instead detects conflicts when writing data.<\/p>\n<p>Specifically, the implementation principle of optimistic lock in MyBatis-Plus includes the following steps:<\/p>\n<ol>\n<li>Add a version number field in the database, usually in the form of an integer or timestamp type field.<\/li>\n<li>Return the value of the version number field along with the queried data to the application.<\/li>\n<li>When updating data, the application updates based on the value of the version number field and increments the value of the version number field by 1.<\/li>\n<li>If the value of the version number field is different from the value of the version number field returned from previous queries when updating data, it means that the data has been modified by another thread, the update operation fails, and a rollback or retry is needed.<\/li>\n<li>Updating data is successful if the value of the version number field matches the value returned during the previous query, indicating that the data has not been modified by other threads.<\/li>\n<\/ol>\n<p>Using this method, MyBatis-Plus optimistic locking ensures data consistency and integrity in concurrent operations, avoiding the performance issues caused by traditional pessimistic locking mechanisms. Additionally, optimistic locking conducts conflict detection during data updates, preventing blocking delays during data updates.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The implementation principle of MyBatis-Plus optimistic lock is based on the optimistic lock mechanism in the database. Optimistic lock is a concurrency control strategy that assumes conflicts are rare during data operations, so it does not lock when reading data but instead detects conflicts when writing data. Specifically, the implementation principle of optimistic lock in [&hellip;]<\/p>\n","protected":false},"author":5,"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-23135","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>What is the principle behind implementing optimistic lock in MyBatis Plus? - 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\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the principle behind implementing optimistic lock in MyBatis Plus?\" \/>\n<meta property=\"og:description\" content=\"The implementation principle of MyBatis-Plus optimistic lock is based on the optimistic lock mechanism in the database. Optimistic lock is a concurrency control strategy that assumes conflicts are rare during data operations, so it does not lock when reading data but instead detects conflicts when writing data. Specifically, the implementation principle of optimistic lock in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/\" \/>\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:52:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T00:32:41+00:00\" \/>\n<meta name=\"author\" content=\"Emily Johnson\" \/>\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=\"Emily Johnson\" \/>\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\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/\"},\"author\":{\"name\":\"Emily Johnson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\"},\"headline\":\"What is the principle behind implementing optimistic lock in MyBatis Plus?\",\"datePublished\":\"2024-03-16T00:52:13+00:00\",\"dateModified\":\"2024-03-22T00:32:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/\"},\"wordCount\":248,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/\",\"name\":\"What is the principle behind implementing optimistic lock in MyBatis Plus? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T00:52:13+00:00\",\"dateModified\":\"2024-03-22T00:32:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the principle behind implementing optimistic lock in MyBatis Plus?\"}]},{\"@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\/3b041b19cffc258705478ecfab895378\",\"name\":\"Emily Johnson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"caption\":\"Emily Johnson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the principle behind implementing optimistic lock in MyBatis Plus? - 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\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/","og_locale":"en_US","og_type":"article","og_title":"What is the principle behind implementing optimistic lock in MyBatis Plus?","og_description":"The implementation principle of MyBatis-Plus optimistic lock is based on the optimistic lock mechanism in the database. Optimistic lock is a concurrency control strategy that assumes conflicts are rare during data operations, so it does not lock when reading data but instead detects conflicts when writing data. Specifically, the implementation principle of optimistic lock in [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T00:52:13+00:00","article_modified_time":"2024-03-22T00:32:41+00:00","author":"Emily Johnson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Emily Johnson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/"},"author":{"name":"Emily Johnson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378"},"headline":"What is the principle behind implementing optimistic lock in MyBatis Plus?","datePublished":"2024-03-16T00:52:13+00:00","dateModified":"2024-03-22T00:32:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/"},"wordCount":248,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/","name":"What is the principle behind implementing optimistic lock in MyBatis Plus? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T00:52:13+00:00","dateModified":"2024-03-22T00:32:41+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-principle-behind-implementing-optimistic-lock-in-mybatis-plus\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the principle behind implementing optimistic lock in MyBatis Plus?"}]},{"@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\/3b041b19cffc258705478ecfab895378","name":"Emily Johnson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","caption":"Emily Johnson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23135","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=23135"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23135\/revisions"}],"predecessor-version":[{"id":57095,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23135\/revisions\/57095"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=23135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=23135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=23135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}