当【添加管理员】时,必须在操作界面上提供一个可以选择【角色】的控件,且添加时必须确定某些角色,从而,新添加的管理员才会因为选择的角色而关联到某些权限,管理员才会具有某些操作权限!
关于选择【角色】,需要将当前系统中的【角色列表】显示在操作界面上!
关于Mapper层(数据访问层 / DAO(Data Access Object)层 / 持久层)
需要执行的SQL语句大致是:
SELECT id, name, description, sort FROM ams_role ORDER BY sort DESC, id
在根包下创建pojo.vo.RoleListItemVO
类:
package cn.tedu.csmall.passport.pojo.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class RoleListItemVO implements Serializable {
private Long id;
private String name;
private String description;
private Integer sort;
}
在根包下创建mapper.RoleMapper
接口,并添加抽象方法:
package cn.tedu.csmall.passport.mapper;
import cn.tedu.csmall.passport.pojo.vo.RoleListItemVO;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface RoleMapper {
List<RoleListItemVO> list();
}
在src/main/resources
下的mapper
文件夹中粘贴得到RoleMapper.xml
,并在此文件中配置以上抽象方法映射的SQL语句:
DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.tedu.csmall.passport.mapper.RoleMapper">
<select id="list" resultMap="ListResultMap">
SELECT
<include refid="ListQueryFields" />
FROM
ams_role
ORDER BY
sort DESC, id
select>
<sql id="ListQueryFields">
<if test="true">
id, name, description, sort
if>
sql>
<resultMap id="ListResultMap" type="cn.tedu.csmall.passport.pojo.vo.RoleListItemVO">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="description" property="description" />
<result column="sort" property="sort" />
resultMap>
mapper>
在src/test/java
下的根包下创建mapper.RoleMapperTests
测试类,对以上方法进行测试:
package cn.tedu.csmall.passport.mapper;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@Slf4j
@SpringBootTest
public class RoleMapperTests {
@Autowired
RoleMapper mapper;
@Test
void testList() {
List<?> list = mapper.list