@InsertProvider实现批量插入

Posted me168

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@InsertProvider实现批量插入相关的知识,希望对你有一定的参考价值。

方法上引用@InsertProvider注解 

@InsertProvider(type = UrlBlackDAOProvider.class, method = "insertAll")
    void batchSaveBlackList(@Param("list") List<UrlBlackInfo> blacklists);

 

写一个名为UrlBlackDAOProvider类,并且类里写一个名为insertAll的方法

 public String insertAll(Map map) {
        List<UrlBlackInfo> urlBlack = (List<UrlBlackInfo>) map.get("list");
        StringBuilder sb = new StringBuilder();
        sb.append("INSERT INTO tb_url_blacklist ");
        sb.append("(url, receive_num, url_type, create_time) ");
        sb.append("VALUES ");
        MessageFormat mf = new MessageFormat("(#‘{‘list[{0}].url},#‘{‘list[{0}].receiveNum},#‘{‘list[{0}].urlType},#‘{‘list[{0}].createTime})");
        for (int i = 0; i < urlBlack.size(); i++) {
            sb.append(mf.format(new Object[]{i}));
            if (i < urlBlack.size() - 1) {
                sb.append(",");
            }
        }
        return sb.toString();
    }
















以上是关于@InsertProvider实现批量插入的主要内容,如果未能解决你的问题,请参考以下文章

jdbc批量插入实现大批量数据快速插入

批量插入数据

Mybatis 实现批量插入和批量删除源码实例

Mybatis 3+Mysql 实现批量插入

使用 JPA EntityManager 进行批量插入

mysql批量插入数据