具体步骤如下:
1 controller层(查询开始的接口)
① 调用UserService查询用户列表
② 调用RoleService查询当前用户所拥有的角色list
@RequestMapping("listUser")
public String list(Model model) {
//查询用户
List<User> user = userService.list();
model.addAttribute("user", user);
//用户角色对应map
Map<User, List<Role>> user_roles = new HashMap<>();
for (User user : user) {
//获得当前用户所拥有的角色list
List<Role> roles = roleService.listRoles(user);
user_roles.put(user, roles);
}
model.addAttribute("user_roles", user_roles);
return "listUser";
}
2 调用UserService查询用户,返回一个用户list,具体实现在它的实现层中,代码如下:
① 调用UserMapper层从数据库进行查询
@Override
public List<User> list() {
//相当于用户的一个工具类,设置查询结果list的排序规则
UserExample example = new UserExample();
//当前查询到的用户按降序排序
example.setOrderByClause("id desc");
return userMapper.selectByExample(example);
}
3 UserMapper层的方法如下:返回一个用户list
List<User> selectByExample(UserExample example);
4 UserMapper.xml具体如下:
<select id="selectByExample" parameterType="com.how2java.pojo.UserExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
'false' as QUERYID,
<include refid="Base_Column_List" />
from user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>