{"id":19956,"date":"2024-03-15T19:45:18","date_gmt":"2024-03-15T19:45:18","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/"},"modified":"2024-03-21T16:56:23","modified_gmt":"2024-03-21T16:56:23","slug":"how-to-implement-adding-multiple-data-in-mybatis","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/","title":{"rendered":"How to implement adding multiple data in MyBatis?"},"content":{"rendered":"<p>To achieve the insertion of one-to-many data in MyBatis, you can follow these steps:<\/p>\n<ol>\n<li>Create database table structure: Create two tables with a one-to-many relationship, for example, an order table and an order item table, with the order table and order item table linked by order ID.<\/li>\n<li>Create entity classes: Create two entity classes, one representing orders and the other representing order items. In the order entity class, define a property of type List, indicating a one-to-many relationship between orders and order items.<\/li>\n<li>Create Mapper interfaces: create separate Mapper interfaces for orders and order items, and define methods for adding data in each interface. For example, in the Order Mapper interface, define an insertOrder method, and in the Order Item Mapper interface, define an insertOrderItem method.<\/li>\n<li>Create Mapper mapping files: In the order Mapper mapping file, write the SQL statement to add order data and use elements to retrieve the auto-generated order ID. In the order item Mapper mapping file, write the SQL statement to add order item data and use elements to iterate through the order item list.<\/li>\n<li>Write code to add data: call the insertOrder method of the OrderMapper interface to add order data in the code, and get the generated order ID. Next, iterate through the order item list, set the order ID for each order item, and call the insertOrderItem method of the OrderItemMapper interface to add order item data.<\/li>\n<\/ol>\n<p>Here is a simple example code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ \u8ba2\u5355\u5b9e\u4f53\u7c7b<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Order<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> Integer id;\r\n    <span class=\"hljs-keyword\">private<\/span> List&lt;OrderItem&gt; orderItems;\r\n    <span class=\"hljs-comment\">\/\/ getter\u548csetter\u65b9\u6cd5<\/span>\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u8ba2\u5355\u9879\u5b9e\u4f53\u7c7b<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">OrderItem<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> Integer id;\r\n    <span class=\"hljs-keyword\">private<\/span> Integer orderId;\r\n    <span class=\"hljs-keyword\">private<\/span> String productName;\r\n    <span class=\"hljs-comment\">\/\/ getter\u548csetter\u65b9\u6cd5<\/span>\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u8ba2\u5355Mapper\u63a5\u53e3<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">interface<\/span> <span class=\"hljs-title class_\">OrderMapper<\/span> {\r\n    <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">insertOrder<\/span><span class=\"hljs-params\">(Order order)<\/span>;\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u8ba2\u5355\u9879Mapper\u63a5\u53e3<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">interface<\/span> <span class=\"hljs-title class_\">OrderItemMapper<\/span> {\r\n    <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">insertOrderItem<\/span><span class=\"hljs-params\">(OrderItem orderItem)<\/span>;\r\n}\r\n\r\n&lt;!-- \u8ba2\u5355Mapper\u6620\u5c04\u6587\u4ef6 --&gt;\r\n&lt;mapper namespace=<span class=\"hljs-string\">\"com.example.mapper.OrderMapper\"<\/span>&gt;\r\n    &lt;insert id=<span class=\"hljs-string\">\"insertOrder\"<\/span> parameterType=<span class=\"hljs-string\">\"com.example.entity.Order\"<\/span>&gt;\r\n        &lt;selectKey keyProperty=<span class=\"hljs-string\">\"id\"<\/span> resultType=<span class=\"hljs-string\">\"java.lang.Integer\"<\/span> order=<span class=\"hljs-string\">\"AFTER\"<\/span>&gt;\r\n            SELECT <span class=\"hljs-title function_\">LAST_INSERT_ID<\/span><span class=\"hljs-params\">()<\/span>\r\n        &lt;\/selectKey&gt;\r\n        INSERT INTO `order` (id) VALUES (#{id})\r\n    &lt;\/insert&gt;\r\n&lt;\/mapper&gt;\r\n\r\n&lt;!-- \u8ba2\u5355\u9879Mapper\u6620\u5c04\u6587\u4ef6 --&gt;\r\n&lt;mapper namespace=<span class=\"hljs-string\">\"com.example.mapper.OrderItemMapper\"<\/span>&gt;\r\n    &lt;insert id=<span class=\"hljs-string\">\"insertOrderItem\"<\/span> parameterType=<span class=\"hljs-string\">\"com.example.entity.OrderItem\"<\/span>&gt;\r\n        INSERT INTO <span class=\"hljs-title function_\">order_item<\/span> <span class=\"hljs-params\">(order_id, product_name)<\/span> VALUES (#{orderId}, #{productName})\r\n    &lt;\/insert&gt;\r\n&lt;\/mapper&gt;\r\n\r\n<span class=\"hljs-comment\">\/\/ \u6dfb\u52a0\u6570\u636e\u7684\u4ee3\u7801<\/span>\r\n<span class=\"hljs-type\">OrderMapper<\/span> <span class=\"hljs-variable\">orderMapper<\/span> <span class=\"hljs-operator\">=<\/span> sqlSession.getMapper(OrderMapper.class);\r\n<span class=\"hljs-type\">OrderItemMapper<\/span> <span class=\"hljs-variable\">orderItemMapper<\/span> <span class=\"hljs-operator\">=<\/span> sqlSession.getMapper(OrderItemMapper.class);\r\n\r\n<span class=\"hljs-type\">Order<\/span> <span class=\"hljs-variable\">order<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Order<\/span>();\r\nList&lt;OrderItem&gt; orderItems = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;();\r\n<span class=\"hljs-type\">OrderItem<\/span> <span class=\"hljs-variable\">orderItem1<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">OrderItem<\/span>();\r\norderItem1.setProductName(<span class=\"hljs-string\">\"Product 1\"<\/span>);\r\norderItems.add(orderItem1);\r\n<span class=\"hljs-type\">OrderItem<\/span> <span class=\"hljs-variable\">orderItem2<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">OrderItem<\/span>();\r\norderItem2.setProductName(<span class=\"hljs-string\">\"Product 2\"<\/span>);\r\norderItems.add(orderItem2);\r\n\r\norder.setOrderItems(orderItems);\r\norderMapper.insertOrder(order);\r\n<span class=\"hljs-type\">Integer<\/span> <span class=\"hljs-variable\">orderId<\/span> <span class=\"hljs-operator\">=<\/span> order.getId();\r\n\r\n<span class=\"hljs-keyword\">for<\/span> (OrderItem orderItem : orderItems) {\r\n    orderItem.setOrderId(orderId);\r\n    orderItemMapper.insertOrderItem(orderItem);\r\n}\r\n<\/code><\/pre>\n<p>This allows for the addition of data in a one-to-many relationship.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To achieve the insertion of one-to-many data in MyBatis, you can follow these steps: Create database table structure: Create two tables with a one-to-many relationship, for example, an order table and an order item table, with the order table and order item table linked by order ID. Create entity classes: Create two entity classes, one [&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-19956","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 to implement adding multiple data 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-to-implement-adding-multiple-data-in-mybatis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to implement adding multiple data in MyBatis?\" \/>\n<meta property=\"og:description\" content=\"To achieve the insertion of one-to-many data in MyBatis, you can follow these steps: Create database table structure: Create two tables with a one-to-many relationship, for example, an order table and an order item table, with the order table and order item table linked by order ID. Create entity classes: Create two entity classes, one [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-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-15T19:45:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T16:56:23+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=\"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-to-implement-adding-multiple-data-in-mybatis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/\"},\"author\":{\"name\":\"Emily Johnson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\"},\"headline\":\"How to implement adding multiple data in MyBatis?\",\"datePublished\":\"2024-03-15T19:45:18+00:00\",\"dateModified\":\"2024-03-21T16:56:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/\"},\"wordCount\":259,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/\",\"name\":\"How to implement adding multiple data in MyBatis? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T19:45:18+00:00\",\"dateModified\":\"2024-03-21T16:56:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to implement adding multiple data 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\/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":"How to implement adding multiple data 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-to-implement-adding-multiple-data-in-mybatis\/","og_locale":"en_US","og_type":"article","og_title":"How to implement adding multiple data in MyBatis?","og_description":"To achieve the insertion of one-to-many data in MyBatis, you can follow these steps: Create database table structure: Create two tables with a one-to-many relationship, for example, an order table and an order item table, with the order table and order item table linked by order ID. Create entity classes: Create two entity classes, one [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T19:45:18+00:00","article_modified_time":"2024-03-21T16:56:23+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":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/"},"author":{"name":"Emily Johnson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378"},"headline":"How to implement adding multiple data in MyBatis?","datePublished":"2024-03-15T19:45:18+00:00","dateModified":"2024-03-21T16:56:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/"},"wordCount":259,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/","name":"How to implement adding multiple data in MyBatis? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T19:45:18+00:00","dateModified":"2024-03-21T16:56:23+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-adding-multiple-data-in-mybatis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to implement adding multiple data 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\/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\/19956","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=19956"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19956\/revisions"}],"predecessor-version":[{"id":53726,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19956\/revisions\/53726"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=19956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=19956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=19956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}