mybatis 一次从数据库查询太多数据,导致数据库挂了,这里使用流式查询,每次查询500条数据,对所有数据进行遍历:
这里写在Mapper.java(如下 JOB_GZS 是数据库表,JobGzs 是实体类)
@Select("select * from ${schema}.JOB_GZS") @Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = 500) @ResultType(JobGzs.class) void dynamicSelectLargeData(ResultHandler<JobGzs> handler);
这里是对这个流式方法的使用:
@PostMapping("/test") @ApiOperation(value = "测试流式查询") public Object test(){ List<JobGzs> list = new LinkedList<>(); jobGzsMapper.dynamicSelectLargeData(new ResultHandler<JobGzs>() { @Override public void handleResult(ResultContext<? extends JobGzs> resultContext) { JobGzs jobGzs = resultContext.getResultObject(); list.add(jobGzs); System.out.println(list.size()); } }); return null; }
来源地址:https://blog.csdn.net/weixin_44340643/article/details/128239848