Java MySQL 批量查询数据,每次查询10条
因为 数据量比较多, 比如每次
/** * 批量查询 * @param sourList * @param batchCount * @param userMapper * @return */ public List<User> dealBySubList(Set<String> sourList,Integer batchCount,UserMapper userMapper){ List<User> userList = new ArrayList<User>(); List<String> list = new ArrayList<String>(); for(String obj:sourList){ list.add(obj); } int sourListSize = list.size(); int subCount = sourListSize%batchCount==0 ? sourListSize/batchCount : sourListSize/batchCount+1; int startIndext = 0; int stopIndext = 0; for(int i=0;i<subCount;i++){ stopIndext = (i==subCount-1) ? stopIndext + sourListSize%batchCount : stopIndext + batchCount; List<String> tempList = new ArrayList<String>(list.subList(startIndext, stopIndext)); if(tempList.size()>0){ userList.addAll(userMapper.getUserListByToken(tempList)); } startIndext = stopIndext; } return userList; }
查询10000 条信息, 不可能 查10000次, 或者, 不可能用in 一次查询, 所以使用 分页批量查询,一下是代码