67,512
社区成员
发帖
与我相关
我的任务
分享
resultset set1 = 查询b表;
resultset set2 = 查询a表;
while(set1.next()) {
map.put(set1.getLong("nectId"),set1.getString("command"));
}
while(set2.next()) {
UserDTO dto = new UserDTO;
Long id = set2.getLong("id");
dto.setId(id);
dto.setUserName(set2.getString("username"));
dto.setIp(set2.getString("ip"));
dto.setCommand((List<String>)map.get(id));
dtoList.add(dto);
}
public class UserDO {
private Long id;
private String userName;
private String ip;
//TODO get and set
}
public class UserDTO extends UserDO {
private List<String> command;
//TODO get and set
}
public class UserCommandDO {
private Long nectId;
private String command;
//TODO get and set
}
你这里的id和nectid肯定是一致的,command里的可以去掉,最后用list<UserDTO>封装数据
你从a表查询返回的数据用list<UserDO>封装
List<Long> idList = new ArrayList<>();
//可存储重复主键的map
Multimap<Long,String> map = ArrayListMultimap.create();
//判断list非空
for (UserDO user : userList) {
idList.add(user.getId());
}
//根据idLIst从b表查询出数据list<UserCommandDO>
//判断list非空
for (UserCommandDO command : commandList) {
map.put(commnd.getNectId(),command.getCommand());
}
List<UserDTO> dtoList = new ArrayList<>();
for (UserDO user : userList) {
UserDTO dto = new UserDTO();
dto.setId(user.getId());
dto.setUserName(user.getUserName());
dto.setIp(user.getIp());
List<String> list = (List<String>)map.get(user.getId());
dto.setCommand(list);
dtoList.add(dto);
}
return dtoList;