以下是一个示例的业务类,使用PageHelper分页框架进行定时跑批分页插入操作,并在遇到重复数据时跳过继续插入:
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BatchInsertService {
@Autowired
private YourMapper yourMapper;
public void batchInsertData() {
int pageNum = 1;
int pageSize = 100;
boolean hasMoreData = true;
while (hasMoreData) {
// 使用PageHelper进行分页设置
PageHelper.startPage(pageNum, pageSize);
// 调用yourMapper的查询方法获取一页的数据
List<YourEntity> dataList = yourMapper.getDataList();
// 使用PageInfo获取分页信息,判断是否还有更多数据
PageInfo<YourEntity> pageInfo = new PageInfo<>(dataList);
hasMoreData = pageInfo.isHasNextPage();
// 遍历数据进行插入操作
for (YourEntity entity : dataList) {
try {
// 调用yourMapper的插入方法进行数据插入
yourMapper.insertData(entity);
} catch (Exception e) {
// 当插入有库中有报异常显示重复数据时,跳过继续插入
System.out.println("插入数据出现异常:" + e.getMessage());
continue;
}
}
// 下一页
pageNum++;
}
}
}
在这个示例中,我们假设已经有一个名为YourMapper的Mapper接口,其中包含了获取数据列表和插入数据的方法。你需要根据实际情况修改代码中的YourEntity、YourMapper、getDataList()和insertData()。
在batchInsertData()方法中,我们使用PageHelper.startPage()方法设置分页参数,然后循环通过Mapper查询一页的数据。使用PageInfo获取分页信息,判断是否还有更多数据。然后遍历数据进行插入操作,在插入时捕获异常,当遇到重复数据时跳过继续插入。
备注:仅供参考
标签:分页,示例,插入,yourMapper,import,数据,PageInfo From: https://www.cnblogs.com/codeLearn/p/17685021.html