我有一些从数据库返回的值作为结果集,如下所示
**resource_name menu_name menu_group_name**
DepartmentAction Department Admin Operation
PositionAction Position Admin Operation
FoodHabitAction FoodHabits Admin Operation
ReligiousAction Religious Admin Operation
NationalitiesAction Nationlities Admin Operation
我想根据 menu_group_name 对 resource_name 和 menu_mane 进行分组,如下所示
if the menu_group_name is same than group all the corresponding
resource_name and menu_mane against to menu_group_name .
更新 :
public Map<String,List> getMenuForLoggedinRole(int roleid){
Map<String,List> menuListMap = new LinkedHashMap<String,List>();
List<MenuListViewModel> menuNamesList = new ArrayList<MenuListViewModel>();
MenuListViewModel menuViewModel;
Connection connection = getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
if (connection != null) {
try {
ps = connection.prepareStatement(" select ar.resource_name,ar.menu_name,mg.menu_group_name "
+ " from m_application_resources as ar,"
+ " m_menu_groups as mg,m_access_matrix as amatrix "
+ " where ar.resourceid = amatrix.resourceid and amatrix.roleid=?");
ps.setInt(1, roleid);
rs = ps.executeQuery();
if(rs.next()) {
String menu_group_name = rs.getString("menu_group_name");
String resource_name = rs.getString("resource_name");
String menu_name = rs.getString("menu_name");
if(menuListMap.containsKey(menu_group_name)){
menuNamesList =(List) menuListMap.get(menu_group_name);
menuViewModel = new MenuListViewModel();
menuViewModel.setResource_name(resource_name);
menuViewModel.setMenu_name(menu_name);
menuNamesList.add(menuViewModel);
menuListMap.put(menu_group_name, menuNamesList);
}else{
menuViewModel = new MenuListViewModel();
menuViewModel.setResource_name(resource_name);
menuViewModel.setMenu_name(menu_name);
menuNamesList.add(menuViewModel);
menuListMap.put(menu_group_name, menuNamesList);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}finally {
try {
closeConnection(connection, rs, ps);
} catch (Exception ex) {
ex.printStackTrace();
//use logger here
}
}
}
printMap(menuListMap);
return menuListMap;
}
当我打印并看到只有一个值被打印时,其他值没有。请帮助我如何做到这一点。我知道这很简单需要你的帮助。
问候