数据表中有name,number,id,如何用mybatis-plus实现批量插入
时间: 2023-06-03 12:06:26 浏览: 149
基于mybatis-plus实现多租户级别的数据隔离
您可以使用Mybatis-Plus的BatchInsert功能来批量插入数据,具体步骤如下:
(1)首先创建一个实体类,包含需要插入的属性(name,number,id)。
(2)创建一个Mapper,并继承Mybatis-Plus提供的BaseMapper。
(3)在Mapper中使用@InsertProvider注解,并指定插入数据的Provider类:
@InsertProvider(type = BatchInsertProvider.class, method = "dynamicSQL")
(4)在Provider类中实现批量插入的SQL语句,如下所示:
public class BatchInsertProvider {
public String batchInsert(Map map) {
List dataList = (List) map.get("list");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("insert into table_name (name,number,id) values ");
for (Object data : dataList) {
Map dataMap = (Map) data;
stringBuilder.append("(");
stringBuilder.append("'").append(dataMap.get("name")).append("',");
stringBuilder.append("'").append(dataMap.get("number")).append("',");
stringBuilder.append("'").append(dataMap.get("id")).append("'");
stringBuilder.append("),");
}
stringBuilder.deleteCharAt(stringBuilder.length() - 1);
return stringBuilder.toString();
}
}
(5)在Service中调用Mapper的批量插入方法,如下所示:
@Autowired
private Mapper mapper;
public boolean batchInsert(List dataList) {
Map map = new HashMap<>();
map.put("list", dataList);
int result = mapper.batchInsert(map);
return result == dataList.size();
}
以上就是使用Mybatis-Plus实现批量插入的步骤,希望能够对您有所帮助。
阅读全文