Я хочу преобразовать свой Resultset в список объектов. Это мой запрос:
String querystring1= "SELECT userID, privilege"
+ "FROM dbo.User order by userID, privilege";
userID privilege
------------------
1001 read
1001 write
1001 execute
1001 delete
1006 execute
1006 read
1006 write
1007 read
1007 write
У меня есть класс, определенный пользователем как:
public class User {
private int userID;
private List<String> userPrivelege;
}
Я хочу получить в качестве вывода список пользователей, и это мой реализованный код:
String previousId = null;
List<String> PrivList= new ArrayList<String>();
List<User> allUserList= new ArrayList<User>();
while(result_set.next()) {
String userID = result_set.getString("userID");
String privilege = result_set.getString("privilege");
if (previousId == null) { // first time
User user = new User();
PrivList.add(privilege);
previousId=userID;
} else if (previousId.equals(userID) {
PrivList.add(privilege);
} else {
user.setUserPrivilege(PrivList);
allUserList.add(user);
PrivList.clear();
previousId=null;
}
}
Проблема в том, что, кроме первого созданного объекта пользователя, все последующие всегда пропускают первое значение, что означает, что пользователь 1006 будет иметь 2 привилегии, отличные от 3.
Есть идеи?