首页 > 编程语言 > 详细

Springboot集成mybatis时批量插入

时间:2018-09-03 18:20:23      阅读:683      评论:0      收藏:0      [点我收藏+]

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

/**
 * @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时批量插入

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!