不设外键:来看看上次预留的连接查询接口

简介: postman接口测试你见过一个类中注入很多的bean吗?比如说像这样image这个是接着上次的文章,虽然也是用程序实习关联的一种解决方案再来看看Controller中的方法 (service中的方法就是上次文章中的方法...
img_9a887152c99b805607e787f205494995.png
postman接口测试

你见过一个类中注入很多的bean吗?比如说像这样


img_01861ce0a75047403e10420dd3e0d615.png
image

这个是接着上次的文章,虽然也是用程序实习关联的一种解决方案
再来看看Controller中的方法 (service中的方法就是上次文章中的方法体中的方法)

/**
     * 查询该用户下所有的权限
     */
    @RequestMapping("/queryauth")
    public List<String> queryUserAuthorities(User user){
        UserVo userVo = userService.queryAuth(user);
        List<String> authorityList = new ArrayList<>();
        HashSet<RoleVo> roleVos = userVo.getRoleVos();
        Iterator<RoleVo> iterator = roleVos.iterator();
        while (iterator.hasNext()){
            RoleVo next = iterator.next();
            HashSet<AuthorityVo> authorityVos = next.getAuthorityVos();
            Iterator<AuthorityVo> it = authorityVos.iterator();
            while (it.hasNext()){
                AuthorityVo authorityVo = it.next();
                authorityList.add(authorityVo.getAname());
            }
        }
        return authorityList;
    }

看起来是不是有点南辕北辙的感觉了,所以上次预留的连接查询的接口就有用了(这里有个细节就是在创建意义上的中间表的时候,具体请去查看上一篇文章)

测试结果:


img_ef32a8e4b2c1cf7752da8016542818b2.png
postman

Controller

 @RequestMapping("/selectauth")
    public List<Authority> selectUserAuthorities(User user){
        List<Authority> authorityList = userService.selectUserAuth(user);
        return authorityList;
    }

Service

 @Override
    public List<Authority> selectUserAuth(User user) {
        Integer uid = user.getUid();
        List<Authority> authorityList = new ArrayList<>();
        List<Integer> aids = userRoleMapper.selectUserAuth(uid);
        for (Integer id:aids
             ) {
            Authority authority = authorityMapper.getAuthorityById(id);
            authorityList.add(authority);
        }
        return authorityList;
    }

Mapper:

<select id="selectUserAuth" parameterType="INTEGER" resultType="integer">
        select t_role_authority.aid from t_user_role inner JOIN
       t_role_authority on t_user_role.rid = t_role_authority.rid where uid=#{uid};
    </select>

一样的实现了 查询该用户下拥有的所有权限

目录
相关文章
|
5月前
|
数据安全/隐私保护
离线表数据敏感字段自动id化处理
离线表数据敏感字段自动id化处理
47 0
|
5月前
|
数据库
数据库第二次作业 表的约束
数据库第二次作业 表的约束
21 0
|
11月前
|
缓存 NoSQL 前端开发
redis缓存不经常发生变化的数据-------从数据库中获得下拉列表的省份数据
redis缓存不经常发生变化的数据-------从数据库中获得下拉列表的省份数据
|
11月前
|
SQL 数据库
关于对数据库统计每个时间段内的数据的实现方式
sql新手的我今天遇到了一个问题关于数据库统计每个时间段内的数据的问题,先简化一下题目举个例子吧 表结构 访问记录表(vs_records) id time 0001 2005-12-1 14:12:16 0002 2005-12-1 14:22:16 0003 20
91 0
|
数据库
【TP5.1】数据库的字段只可以读不可更新
【TP5.1】数据库的字段只可以读不可更新
66 0
【TP5.1】数据库的字段只可以读不可更新
|
SQL 关系型数据库 MySQL
paip.解决 数据库mysql增加列 字段很慢添加字段很慢
paip.解决 数据库mysql增加列 字段很慢添加字段很慢 环境如下: mysql5.6 数据仅仅3w alter table xxx add column yyy int default 0; 添加字段很慢,好几份中都没有好。
3777 0
|
Oracle 关系型数据库 测试技术
远程数据库的表超过20个索引的影响
昨天同事参加了一个研讨会,有提到一个案例。一个通过dblink查询远端数据库,原来查询很快,但是远端数据库增加了一个索引之后,查询一下子变慢了。 经过分析,发现那个通过dblink的查询语句,查询远端数据库的时候,是走索引的,但是远端数据库添加索引之后,如果索引的个数超过20个,就会忽略第一个建立的索引,如果查询语句恰好用到了第一个建立的索引,被忽略之后,只能走Full Table Scan了。
1529 0

热门文章

最新文章