mybatis批量insert

一、首先service层处理业务时候将pojo类添加到list里: demoServiceImpl.java

@Autowired
private DemoObjectMapper demoObjectMapper ;

@Transactional
public int addStudentBatch(List<Object> demoList) {
    .....
    List<DemoObject> demoObjectList = new ArrayList<>();
    for (int i = 0;i< demoList.size();i++){//demoLIst为数据集
        DemoObject demoObject = new DemoObject(); 
        //此处demo使用的是生成UUID
        String demoId=UUID.randomUUID().toString().replace("-", "");//替换掉中间的那个横杠
        demoObject.setDemoId(demoId);
        .....

        demoObjectList .add(demoObject );
    }  
     .....
    demoObjectMapper.addDemoBatch(demoObjectList );
}

二、dao层方法:DemoObjectMapper.java

void addDemoBatch(List<DemoObject> demoObjects);

三、对应的mapper文件中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="com.demo.mapper.DemoMapper">

    <insert id="addDemoBatch" parameterType="com.demo.pojo.DemoObject">
        INSERT INTO
            tb_demo(
                .....
            )
        VALUES
            <foreach collection="list" item="demoObject" index="index" separator=",">
                (
                 #{demoObject.demoId}
                ,...........
                )
            </foreach>
    </insert>
</mapper>

猜你喜欢

转载自blog.csdn.net/qq_38464466/article/details/82112802