美文网首页
Mybatis 批量insert

Mybatis 批量insert

作者: xiaoqiaobian | 来源:发表于2020-10-21 00:25 被阅读0次

    一、controller

    @CrossOrigin
    @RestController
    @RequestMapping("/sku")
    public class SkuDataController {
    
        @Autowired
        private SkuDataService skuDataService;
    
        //添加sku
        @PostMapping(value = "/add",produces = "application/json;charset=utf-8")
        public Result saveSku(@RequestBody List<SkuData>list){
            skuDataService.insert(list);
            return new Result(true, StatusCode.OK,"insert success");
    

    二、service
    public interface SkuDataService {
    void insertAll(List<SkuData> list);
    }

    impl
    @Override
    public void insertAll(List<SkuData> list) {
    skuDataDao.insertAll(list);
    }

    三、dao

    @Component
    @org.apache.ibatis.annotations.Mapper
    public interface SkuDataDao extends Mapper<SkuData> {
    
        //Mybatis批量新增
        @InsertProvider(type = Provider.class, method = "insertAll")
        void insertAll(@Param(value="list")List<SkuData> skuData);
    
        class Provider {
            /* 批量插入 */
            public String insertAll(Map map) {
                List<SkuData> skuData = (List<SkuData>) map.get("list");
                StringBuilder sb = new StringBuilder();
                sb.append("INSERT INTO tb_sku ");
                sb.append("(id, sn, name, price, num, alertNum, image, images, weight , createTime , updateTime, spuId, categoryId, categoryName, brandName, spec, saleNum, commentNum, status, version) ");
                sb.append("VALUES ");
                MessageFormat mf = new MessageFormat(
                        "(#'{'list[{0}].id}, " +
                                "#'{'list[{0}].sn}," +
                                "#'{'list[{0}].name}," +
                                "#'{'list[{0}].price," +
                                "#'{'list[{0}].num}," +
                                "#'{'list[{0}].alertNum}," +
                                "#'{'list[{0}].image}," +
                                "#'{'list[{0}].images}," +
                                "#'{'list[{0}].weight}," +
                                "#'{'list[{0}].createTime}," +
                                "#'{'list[{0}].createTime}," +
                                "#'{'list[{0}].updateTime}," +
                                "#'{'list[{0}].spuId}," +
                                "#'{'list[{0}].categoryId}," +
                                "#'{'list[{0}].categoryName}," +
                                "#'{'list[{0}].brandName}," +
                                "#'{'list[{0}].spec}," +
                                "#'{'list[{0}].saleNum}," +
                                "#'{'list[{0}].commentNum}," +
                                "#'{'list[{0}].status}," +
                                "#'{'list[{0}].version})");
    
                for (int i = 0; i < skuData.size(); i++) {
                    sb.append(mf.format(new Object[]{i}));
                    if (i < skuData.size() - 1)
                        sb.append(",");
                }
                return sb.toString();
            }
        }
    }
    

    postman
    http://localhost:9008/sku/agent/insertAll

    [
    {
    "id": "100000001111",
    "sn": "",
    "name": "锤子手机 X23 8GB+128GB 幻夜蓝 水滴屏全面屏 游戏手机 移动联通电信全网通4G手机",
    "price": 99999,
    "num": 9980,
    "alertNum": 100,
    "image": "https://m.360buyimg.com/mobilecms/s720x720_jfs/t1/4612/28/6223/298257/5ba22d66Ef665222f/d97ed0b25cbe8c6e.jpg!q70.jpg.webp",
    "images": "https://m.360buyimg.com/mobilecms/s720x720_jfs/t1/4612/28/6223/298257/5ba22d66Ef665222f/d97ed0b25cbe8c6e.jpg!q70.jpg.webp",
    "weight": 10,
    "createTime": "2020-05-01 00:00:00",
    "updateTime": "2020-05-21 11:15:00",
    "spuId": "889527500",
    "categoryId": 0,
    "categoryName": "手机",
    "brandName": "vivo",
    "spec": "{'颜色': '红色', '版本': '8GB+128GB'}",
    "saleNum": 0,
    "commentNum": 0,
    "status": "1"
    },
    {
    "id": "100000002222",
    "sn": "",
    "name": "薇妮(viney)女士单肩包 时尚牛皮女包百搭斜挎包女士手提大包(经典黑)",
    "price": 87900,
    "num": 10000,
    "alertNum": 100,
    "image": "https://m.360buyimg.com/mobilecms/s720x720_jfs/t5590/64/5811657380/234462/5398e856/5965e173N34179777.jpg!q70.jpg.webp",
    "images": "https://m.360buyimg.com/mobilecms/s720x720_jfs/t5590/64/5811657380/234462/5398e856/5965e173N34179777.jpg!q70.jpg.webp",
    "weight": 10,
    "createTime": "2019-05-01 11:11:11",
    "updateTime": "2019-05-01 11:11:11",
    "spuId": "451277100",
    "categoryId": 0,
    "categoryName": "真皮包",
    "brandName": "viney",
    "spec": "{'颜色': '黑色'}",
    "saleNum": 0,
    "commentNum": 0,
    "status": "1"
    },
    {
    "id": "100000003333",
    "sn": "",
    "name": "巴布豆(BOBDOG)柔薄悦动婴儿拉拉裤XXL码80片(15kg以上)",
    "price": 1,
    "num": 10000,
    "alertNum": 100,
    "image": "https://m.360buyimg.com/mobilecms/s720x720_jfs/t23998/350/2363990466/222391/a6e9581d/5b7cba5bN0c18fb4f.jpg!q70.jpg.webp",
    "images": "https://m.360buyimg.com/mobilecms/s720x720_jfs/t23998/350/2363990466/222391/a6e9581d/5b7cba5bN0c18fb4f.jpg!q70.jpg.webp",
    "weight": 10,
    "createTime": "2018-05-01 00:00:00",
    "updateTime": "2018-05-01 11:11:11",
    "spuId": "10000000616300",
    "categoryId": 757,
    "categoryName": "拉拉裤",
    "brandName": "巴布豆",
    "spec": "{}",
    "saleNum": 0,
    "commentNum": 0,
    "status": "1"
    },
    {
    "id": "100000004444",
    "sn": "",
    "name": "莎米特SUMMIT拉杆箱22英寸PC材质万向轮旅行箱行李箱PC154T4A可扩容 法拉利红",
    "price": 78900,
    "num": 10000,
    "alertNum": 100,
    "image": "https://m.360buyimg.com/mobilecms/s720x720_jfs/t1/25363/12/2929/274060/5c21df3aE1789bda7/030af31afd116ae0.jpg!q70.jpg.webp",
    "images": "https://m.360buyimg.com/mobilecms/s720x720_jfs/t1/25363/12/2929/274060/5c21df3aE1789bda7/030af31afd116ae0.jpg!q70.jpg.webp",
    "weight": 10,
    "createTime": "2017-05-01 00:00:00",
    "updateTime": "2017-05-01 11:11:11",
    "spuId": "595502400",
    "categoryId": 0,
    "categoryName": "拉杆箱",
    "brandName": "莎米特",
    "spec": "{'颜色': '红色'}",
    "saleNum": 0,
    "commentNum": 0,
    "status": "1"
    }
    ]

    相关文章

      网友评论

          本文标题:Mybatis 批量insert

          本文链接:https://www.haomeiwen.com/subject/giajmktx.html