用ibatis做的一个项目,DAO层的一个方法中:
//查询所有角色权限
public List findAllRoleRight(UserMgrForm userMgrForm)
{
Map<String, String> map = null; //定义Map集合
List<Map<String, String>> list = new ArrayList<Map<String,String>>();
TRoleRright r = new TRoleRright(); //这是一张公共类,集合角色,权限两张表中的属性
list = getSqlMapClientTemplate().queryForList("findAllRole", r);
System.out.println("DAO中的List = "+list.size());//这边打印出来的条数跟表中的相符,也是对的
Iterator iter = list.iterator();
while(iter.hasNext())
{
TRoleRright t = (TRoleRright)iter.next();
System.out.println("t=="+t); //这边在控制台打印是有值的
String roleId = String.valueOf(t.getRoleId());
System.out.println("roleId = " + roleId);//这边打印出来就没值了
String roleName = t.getRoleName(); //值也为null
System.out.println("roleName = " + roleName);
map = new HashMap<String, String>(); 
//将角色id放在Map集合里
map.put("roleId", roleId);
//将角色名称放在Map集合里
map.put("roleName", roleName);

TRoleRright roleRight = new TRoleRright();
//设置角色ID
roleRight.setRoleId(t.getRoleId());

List<TRoleRright> roleRightList = getSqlMapClientTemplate().queryForList("findAllRoleRight", roleRight);
System.out.println("DAO roleRightList:::"+roleRightList.size());
Iterator it = roleRightList.iterator();

String rights = "";
while(it.hasNext())


TRoleRright right = (TRoleRright)it.next();
System.out.println("right=="+right); //有值
String rightName = right.getRightName(); 
System.out.println("rightName::::::"+rightName); //null值
rights=rights+rightName+"/";
System.out.println("rights1   ="+rights);
}
System.out.println("rights2   ="+rights);
if(!"".equals(rights))
{
rights = rights.substring(0, rights.length()-1);
}
map.put("rightName", rights);
list.add(map);
}
return list;
}
以上DAO中的方法主要想实现,在页面中呈现出:角色编号,角色名称,权限名称这三列的数据。一个角色可以拥有多个权限,所以想先得到权限名称,以“/”分隔。 在DAO层此方法中用Debug设断点调试,很多期望得到的值都为null,不知为何?!希望大侠们指点。多谢大家,感激不尽!!