首页 > 数据库 >pagehelper分页框架进行定时跑批分页 在插入与sql语句的编写,当插入有库中有报异常显示重复数据跳过继续插入 写一个业务类示例

pagehelper分页框架进行定时跑批分页 在插入与sql语句的编写,当插入有库中有报异常显示重复数据跳过继续插入 写一个业务类示例

时间:2023-09-07 15:22:38浏览次数:46  
标签:分页 示例 插入 yourMapper import 数据 PageInfo

以下是一个示例的业务类,使用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

相关文章

  • oracle与sqlserver插入数据动态字段值
    记录一下以备下次快速找到。。。      往tb_wf_privgrant表中插入一条记录,workflow_id字段值从tb_wf_workflow表中获取workflow_name='知识审核'的所有记录中workflow_id最大值。--oracledeclare  aNUMBER(10);  begin  select max(workflow_id)intoafromt......
  • Apache Ant入门示例
    一直以来对ant总是有一种特别陌生的感觉,对它很迷茫可也就不管它,绕过它通过其他方式来做到。现在终于醒悟了不再逃避它了。网上找了一篇文章然后跟着入了个门。 “ApacheAnt是一个基于Java的生成工具。据最初的创始人JamesDuncanDavidson介绍,这个工具的名称是anotherneatto......
  • 内存隔离-分段-分页
    内存隔离程序是运行在内存中,不同程序之间需要做地址隔离,不然恶意程序会修改其他程序的数据,不好的程序会越界修改变量。因此,内存需要对进程进行隔离,让每个进程拥有独立的虚拟空间分段内存映射根据程序所需空间大小,在虚拟内存空间划分出一定的区域大小然后在实际物理内存中......
  • 示例-工作清单
    W0G2X0W2IM-eyJsaWNlbnNlSWQiOiJXMEcyWDBXMklNIiwibGljZW5zZWVOYW1lIjoiVU5JVkVSU0lUQVMgSVNMQU0gTkVHRVJJIFNVTkFOIEtBTElKQUdBIiwiYXNzaWduZWVOYW1lIjoiY29kZSBtYW5vbmciLCJhc3NpZ25lZUVtYWlsIjoiMjQxNjc0NjA1QHFxLmNvbSIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25h......
  • py 导入json到redis的代码示例
    这里是一个py导入json到redis的代码示例,它会将字典、列表和元组类型的值序列化为JSON字符串。在这个修改后的脚本中,使用`json.dumps()`函数对这些数据类型进行序列化处理。```pythonimportjsonimportredis#替换为您的JSON文件路径及Redis服务器连接参数json_file_pa......
  • DRF----分页、路由、解析器
    1.5djangorestframework(下)drf内置了很多便捷的功能,在接下来的课程中会给大家依次讲解下面的内容:快速上手请求的封装版本管理认证权限限流序列化视图条件搜索分页路由解析器  10.分页在查看数据列表的API中,如果数据量比较大,肯定......
  • falsk分页详细描述
    Flask-SQLAlchemy也提供了一个paginate()查询方法,相关源码如下defpaginate(self,page=None,per_page=None,error_out=True,max_per_page=None):"""Returns``per_page``itemsfrompage``page``.If``page``or``per_page``are``None``,they......
  • 你好世界示例
    你好世界示例下面嵌入的基本上是您可以创建的最简单的Express应用程序。它是一个单一的文件应用程序- 不是你使用Express生成器时得到的,它为一个完整的应用程序创建脚手架,其中包含大量JavaScript文件,Jade模板和用于各种目的的子目录。constexpress=require('express'......
  • 一个小小的逻辑判断,解决根据类别插入行的问题!
    1职场实例小伙伴们大家好,今天我们来讲解一个在使用Excel中非常常见且基础的问题:如何根据类别插入行的问题。没想到运用一个小小的逻辑判断,即可以轻而易举的解决它。下面我们来看一下具体的工作场景。如下图所示:B1:D12区域为每日的水果销量记录表。我们想要依据C列的水果名称,根据不......
  • MySQL分页查询详解:优化大数据集的LIMIT和OFFSET
    最近在工作中,我们遇到了一个需求,甲方要求直接从数据库导出一个业务模块中所有使用中的工单信息。为了实现这一目标,我编写了一条SQL查询语句,并请求DBA协助导出数据。尽管工单数量并不多,只有3000多条,但每个工单都包含了大量的信息。DBA进行了多次导出操作,不幸的是,每次尝试导出都导致......