Mybatis 批量insert

一、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"
}
]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350