MyBatis实现批量添加

在进行后端的操作时,批量添加总是少不了,话不多说,下面贴上代码

Mybatis代码:

	<insert id="batchInsert" parameterType="java.util.List">
		INSERT INTO
		tb_product_category(product_category_name, priority,
		create_time, shop_id)
		VALUES
		<foreach collection="list" item="productCategory" index="index"
			separator=",">
			(
			#{productCategory.productCategoryName},
			#{productCategory.priority},
			#{productCategory.createTime},
			#{productCategory.shopId}
			)
		</foreach>
	</insert>

使用动态SQL,foreach标签进行遍历
collection定义为 list ,以列表的形式添加进去
item:可自定义,最好与实体类相关
index:计数器
separator:分隔符,比如这种( ?, ?, ?, ? ) , ( ?, ?, ?, ? )

Junit测试类代码

	@Test
	public void testABatchInsertProductCategory(){
    
    
		ProductCategory productCategory = new ProductCategory();
		productCategory.setProductCategoryName("商品类别1");
		productCategory.setPriority(1);
		productCategory.setCreateTime(new Date());
		productCategory.setShopId(1L);
		ProductCategory productCategory2 = new ProductCategory();
		productCategory2.setProductCategoryName("商品类别2");
		productCategory2.setPriority(2);
		productCategory2.setCreateTime(new Date());
		productCategory2.setShopId(1L);
		List<ProductCategory> productCategoryList = new ArrayList<ProductCategory>();
		productCategoryList.add(productCategory);
		productCategoryList.add(productCategory2);
		int effectedNum = productCategoryDao.batchInsertProductCategory(productCategoryList);
		assertEquals(2, effectedNum);
	}

结果展示
SQL语句

数据结果

猜你喜欢

转载自blog.csdn.net/hyx1249273846/article/details/113817392