{"id":106887,"date":"2022-01-21T11:00:00","date_gmt":"2022-01-21T09:00:00","guid":{"rendered":"https:\/\/examples.javacodegeeks.com\/?p=106887"},"modified":"2022-01-18T16:45:12","modified_gmt":"2022-01-18T14:45:12","slug":"sql-transaction-example","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/","title":{"rendered":"SQL Transaction Example"},"content":{"rendered":"<h2 class=\"wp-block-heading\" id=\"h-1-introduction\">1. Introduction<\/h2>\n<p>An SQL transaction is a logical unit of one or more SQL statements. A transaction has <strong>ACID <\/strong>properties:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>A<\/strong>tomicity: all or none of changes are performed. For example, when transferring money from one account to another. The two update SQL statements must be performed as a unit. Use both <strong>commit <\/strong>and <strong>rollback <\/strong>commands.<\/li>\n<li><strong>C<\/strong>onsistency: data is in a consistent state when a transaction starts and ends. For example, when transferring money from one account to another, the total value of both accounts is the same at the start and end of each transaction.<\/li>\n<li><strong>I<\/strong>solation: changes occurring in a transaction will not be visible to any other transaction until that particular change in that transaction is committed.<\/li>\n<li><strong>D<\/strong>urability: after a transaction successfully completes, then changes persist even in the event of a system failure.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-2-technologies-used\">2. Technologies Used<\/h2>\n<p>The example code in this article was built and run using:<\/p>\n<ul class=\"wp-block-list\">\n<li>MySQL<\/li>\n<li>SQL<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-3-setup-table\">3. Setup Table<\/h2>\n<p>In this step, I will create an <strong>account <\/strong>table with three records.<\/p>\n<p><span style=\"text-decoration: underline\"><em>setup<\/em><\/span>\n<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">create table account(\n   id INT NOT NULL AUTO_INCREMENT,\n   name VARCHAR(100) NOT NULL,\n   balance DECIMAL(10,2) NOT NULL,\n   PRIMARY KEY ( id )\n);\n\ninsert into account(name, balance) values('mary',100);\ninsert into account(name, balance ) values('shan',200);\ninsert into account(name, balance ) values('zheng',300);<\/pre>\n<p>Verifying with a SELECT statement. It should display three records.<\/p>\n<p><span style=\"text-decoration: underline\"><em>select statement<\/em><\/span>\n<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">mysql&gt; select * from account;\n+----+-------+---------+\n| id | name  | balance |\n+----+-------+---------+\n|  1 | mary  |  100.00 |\n|  2 | shan  |  200.00 |\n|  3 | zheng |  300.00 |\n+----+-------+---------+\n3 rows in set (0.00 sec)<\/pre>\n<h2 class=\"wp-block-heading\" id=\"h-4-transaction-control\">4. Transaction Control<\/h2>\n<p>There are three commands to control the transactions within a relational database management system:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>commit <\/strong>&#8211; to commit the changes.<\/li>\n<li><strong>rollback <\/strong>&#8211; to rollback the changes. Can rollback to an optional savepoint.<\/li>\n<li><strong>savepoint <\/strong>&#8211; to mark the transaction&#8217;s savepoint.<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\" id=\"h-4-1-the-set-transaction-command\">4.1 The SET TRANSACTION Command<\/h3>\n<p>The <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/set-transaction.html\" target=\"_blank\" rel=\"noreferrer noopener\">SET TRANSACTION<\/a> command sets the transactions&#8217; isolation levels or access mode, etc. Here are two examples.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p><span style=\"text-decoration: underline\"><em>set transaction<\/em><\/span>\n<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">mysql&gt; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt; SET TRANSACTION ISOLATION LEVEL READ COMMITTED;\nQuery OK, 0 rows affected (0.00 sec)<\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-4-2-the-savepoint-command\">4.2 The SAVEPOINT Command<\/h3>\n<p>A savepoint is a logical rollback point within a transaction. When you set a savepoint, you can undo the events up to the savepoint using the rollback command. Here is the syntax to create a savepoint:<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">SAVEPOINT {identifier}<\/pre>\n<p><span style=\"text-decoration: underline\"><em>define a savepoint<\/em><\/span>\n<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">mysql&gt; savepoint initialSave;\nQuery OK, 0 rows affected (0.00 sec)<\/pre>\n<p>The savepoint name can be used in a ROLLBACK command.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-4-3-the-release-savepoint-command\">4.3 The RELEASE SAVEPOINT Command<\/h3>\n<p>The RELEASE SAVEPOINT command releases the savepoint. The released savepoint can no longer be used in the ROLLBACK command.<\/p>\n<p><span style=\"text-decoration: underline\"><em>release a savepoint<\/em><\/span>\n<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">mysql&gt; release savepoint initialSave;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt; rollback to initialSave;\nERROR 1305 (42000): SAVEPOINT initialSave does not exist\nmysql&gt;<\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-4-4-the-rollback-command\">4.4 The ROLLBACK Command<\/h3>\n<p>The ROLLBACK command rollbacks the changes to the start of the transaction or a specified savepoint. First, I will show an example which rollbacks to the start of the transaction.<\/p>\n<p><span style=\"text-decoration: underline\"><em>rollback<\/em><\/span>\n<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">mysql&gt; select * from account;\n+----+-------+---------+\n| id | name  | balance |\n+----+-------+---------+\n|  1 | mary  |  100.00 |\n|  2 | shan  |  200.00 |\n|  3 | zheng |  300.00 |\n+----+-------+---------+\n3 rows in set (0.00 sec)\n\nmysql&gt; update account set balance = 0 where id = 1;\nQuery OK, 1 row affected (0.00 sec)\nRows matched: 1  Changed: 1  Warnings: 0\n\nmysql&gt; rollback;\nQuery OK, 0 rows affected (0.01 sec)\n\nmysql&gt; select * from account;\n+----+-------+---------+\n| id | name  | balance |\n+----+-------+---------+\n|  1 | mary  |  100.00 |\n|  2 | shan  |  200.00 |\n|  3 | zheng |  300.00 |\n+----+-------+---------+\n3 rows in set (0.00 sec)\n\nmysql&gt;<\/pre>\n<p>As you can see here, the <strong>rollback <\/strong>command eased the <strong>update <\/strong>statement. <\/p>\n<p>Next, I will also show another example that rollbacks to a savePoint.<\/p>\n<p><span style=\"text-decoration: underline\"><em>rollback to {savepoint}<\/em><\/span>\n<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">mysql&gt; START TRANSACTION;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt; update account set balance = 10 where id = 3;\nQuery OK, 1 row affected (0.00 sec)\nRows matched: 1  Changed: 1  Warnings: 0\n\nmysql&gt; savePoint zheng10;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt; update account set balance=200 where id = 2;\nQuery OK, 1 row affected (0.00 sec)\nRows matched: 1  Changed: 1  Warnings: 0\n\nmysql&gt; select * from account;\n+----+-------+---------+\n| id | name  | balance |\n+----+-------+---------+\n|  1 | mary  |   90.00 |\n|  2 | shan  |  200.00 |\n|  3 | zheng |   10.00 |\n+----+-------+---------+\n3 rows in set (0.00 sec)\n\nmysql&gt; rollback to zheng10;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt; select * from account;\n+----+-------+---------+\n| id | name  | balance |\n+----+-------+---------+\n|  1 | mary  |   90.00 |\n|  2 | shan  |  210.00 |\n|  3 | zheng |   10.00 |\n+----+-------+---------+\n3 rows in set (0.00 sec)\n\nmysql&gt;<\/pre>\n<p>As you can see here, the update statement after the savepoint <strong>zheng10<\/strong> gets erased with the <strong>rollback to zheng10 <\/strong>command.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-4-5-the-commit-command\">4.5 The COMMIT Command<\/h3>\n<p>The <strong>commit <\/strong>command saves the changes permanently within the transaction.<\/p>\n<p><span style=\"text-decoration: underline\"><em>commit<\/em><\/span>\n<\/p>\n<pre class=\"wp-block-preformatted brush:sql\">mysql&gt; START TRANSACTION;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt; update account set balance =balance-10 where id = 1;\nQuery OK, 1 row affected (0.00 sec)\nRows matched: 1  Changed: 1  Warnings: 0\n\nmysql&gt; update account set balance = balance +10 where id = 2;\nQuery OK, 1 row affected (0.00 sec)\nRows matched: 1  Changed: 1  Warnings: 0\n\nmysql&gt; select * from account;\n+----+-------+---------+\n| id | name  | balance |\n+----+-------+---------+\n|  1 | mary  |   90.00 |\n|  2 | shan  |  210.00 |\n|  3 | zheng |  300.00 |\n+----+-------+---------+\n3 rows in set (0.00 sec)\n\nmysql&gt; commit;\nQuery OK, 0 rows affected (0.01 sec)\n\nmysql&gt;<\/pre>\n<h2 class=\"wp-block-heading\" id=\"h-5-summary\">5. Summary<\/h2>\n<p>In this example, I explained the SQL transaction and how to use <strong>commit <\/strong>and <strong>rollback <\/strong>command along with a <strong>savepoint <\/strong>to control the transaction.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-6-download-the-source-code\">6. Download the Source Code<\/h2>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the full source code of this example here: <a href=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/01\/createTable.zip\"><strong>SQL Transaction Example<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction An SQL transaction is a logical unit of one or more SQL statements. A transaction has ACID properties: Atomicity: all or none of changes are performed. For example, when transferring money from one account to another. The two update SQL statements must be performed as a unit. Use both commit and rollback commands. &hellip;<\/p>\n","protected":false},"author":140,"featured_media":1204,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[],"class_list":["post-106887","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL Transaction Example - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"An SQL transaction is a logical unit of one or more SQL statements. There are three commands: Commit, Rollback, and Savepoint.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Transaction Example - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"An SQL transaction is a logical unit of one or more SQL statements. There are three commands: Commit, Rollback, and Savepoint.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-21T09:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Mary Zheng\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mary Zheng\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/\"},\"author\":{\"name\":\"Mary Zheng\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/8a2034fbabcb20a9396e9819261855ae\"},\"headline\":\"SQL Transaction Example\",\"datePublished\":\"2022-01-21T09:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/\"},\"wordCount\":461,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\",\"articleSection\":[\"sql\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/\",\"name\":\"SQL Transaction Example - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\",\"datePublished\":\"2022-01-21T09:00:00+00:00\",\"description\":\"An SQL transaction is a logical unit of one or more SQL statements. There are three commands: Commit, Rollback, and Savepoint.\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"Bipartite Graph\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Development\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Core Java\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/core-java\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"sql\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/core-java\/sql\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"SQL Transaction Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/8a2034fbabcb20a9396e9819261855ae\",\"name\":\"Mary Zheng\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2017\/11\/Mary-Zheng_avatar_1510732235-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2017\/11\/Mary-Zheng_avatar_1510732235-96x96.jpg\",\"caption\":\"Mary Zheng\"},\"description\":\"Mary has graduated from Mechanical Engineering department at ShangHai JiaoTong University. She also holds a Master degree in Computer Science from Webster University. During her studies she has been involved with a large number of projects ranging from programming and software engineering. She works as a senior Software Engineer in the telecommunications sector where she acts as a leader and works with others to design, implement, and monitor the software solution.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/mary-zheng\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL Transaction Example - Java Code Geeks","description":"An SQL transaction is a logical unit of one or more SQL statements. There are three commands: Commit, Rollback, and Savepoint.","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:\/\/examples.javacodegeeks.com\/sql-transaction-example\/","og_locale":"en_US","og_type":"article","og_title":"SQL Transaction Example - Java Code Geeks","og_description":"An SQL transaction is a logical unit of one or more SQL statements. There are three commands: Commit, Rollback, and Savepoint.","og_url":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2022-01-21T09:00:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","type":"image\/jpeg"}],"author":"Mary Zheng","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Mary Zheng","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/"},"author":{"name":"Mary Zheng","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/8a2034fbabcb20a9396e9819261855ae"},"headline":"SQL Transaction Example","datePublished":"2022-01-21T09:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/"},"wordCount":461,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","articleSection":["sql"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/","url":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/","name":"SQL Transaction Example - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","datePublished":"2022-01-21T09:00:00+00:00","description":"An SQL transaction is a logical unit of one or more SQL statements. There are three commands: Commit, Rollback, and Savepoint.","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","width":150,"height":150,"caption":"Bipartite Graph"},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/sql-transaction-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java Development","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/"},{"@type":"ListItem","position":3,"name":"Core Java","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/core-java\/"},{"@type":"ListItem","position":4,"name":"sql","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/core-java\/sql\/"},{"@type":"ListItem","position":5,"name":"SQL Transaction Example"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/8a2034fbabcb20a9396e9819261855ae","name":"Mary Zheng","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2017\/11\/Mary-Zheng_avatar_1510732235-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2017\/11\/Mary-Zheng_avatar_1510732235-96x96.jpg","caption":"Mary Zheng"},"description":"Mary has graduated from Mechanical Engineering department at ShangHai JiaoTong University. She also holds a Master degree in Computer Science from Webster University. During her studies she has been involved with a large number of projects ranging from programming and software engineering. She works as a senior Software Engineer in the telecommunications sector where she acts as a leader and works with others to design, implement, and monitor the software solution.","url":"https:\/\/examples.javacodegeeks.com\/author\/mary-zheng\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/106887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/140"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=106887"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/106887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/1204"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=106887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=106887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=106887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}