码迷,mamicode.com
首页 > 编程语言 > 详细

Springboot集成mybatis时批量插入

时间:2018-09-03 18:27:31      阅读:2381      评论:0      收藏:0      [点我收藏+]

标签:数据   com   ram   ace   pat   uil   des   end   @param   

通过注解的形式实现数据库的批量插入

/**
 * @author Holley
 * @Description 请输入一句话进行描述
 * @create 2018-07-16 12:09
 **/
@Component
@Mapper
public interface TagOfPatientDao {

    @InsertProvider(type = TagOfPatientProvider.class,method = "insertAll")
    void insertAll(@Param("list") List<TagOfPatient>list);

}

 

/**
 * @author Holley
 * @Description 批量插入
 * @create 2018-07-16 13:21
 **/
public class TagOfPatientProvider {

    public String insertAll(@Param("list") List<TagOfPatient> list){
        StringBuilder sb = new StringBuilder();
        sb.append("insert into tag_of_patient");
        sb.append("(pid,tagid,status,created)");
        sb.append("values");
        MessageFormat mf = new MessageFormat("(#‘{‘list[{0}].pid},#‘{‘list[{0}].tagid},0,now())");
        for(int i = 0;i < list.size();i++){
            sb.append(mf.format(new Object[]{i}));
            if(i < (list.size() - 1)){
                sb.append(",");
            }
        }
        return sb.toString();
    }
}

 

注意:在dao层向provider类中传参时,如果参数只有一个map类型,则此时参数前一定不要使用@Param("map"),否则,在provider类中获取到的map不是当前的map,而是在当前map上又封装了一层map。(具体原因不是很清楚,如果有哪位翻出了源码,请指教下)

 

参考

http://f0rb.iteye.com/blog/1207384

https://www.cnblogs.com/fjdingsd/p/5143625.html

Springboot集成mybatis时批量插入

标签:数据   com   ram   ace   pat   uil   des   end   @param   

原文地址:https://www.cnblogs.com/zhlblogs/p/9579863.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!