美文网首页晴空万里
不设外键:来看看上次预留的连接查询接口

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

作者: Mr_Elliot | 来源:发表于2018-08-09 12:00 被阅读98次
postman接口测试

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


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;
    }

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

测试结果:


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>

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

相关文章

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

    你见过一个类中注入很多的bean吗?比如说像这样 这个是接着上次的文章,虽然也是用程序实习关联的一种解决方案再来看...

  • 连接查询;外键

    连接查询 连接查询(join)分类:内连接、外连接、自然连接、交叉连接 使用方式:左表 join 右表 交叉连接(...

  • 连接查询;外键

    连接查询 连接查询(join)分类:内连接、外连接、自然连接、交叉连接 使用方式:左表 join 右表 交叉连接(...

  • MySQL数据库学习day5

    回顾 连接查询:多张表连接到一起,不管记录数如何,字段数一定会增加 PHP操作mysql: 外键 外键:forei...

  • orm查询操作

    单表查询操作 外键的跨表查询 正向查询(在有外键字段的表向没有的表查询) 反向查询(没有外键的字段向有外键字段的表...

  • Spring Data JPA 多个实体类表联合视图查询

    Spring Data JPA 查询数据库时,如果两个表有关联,那么就设个外键,在查询的时候用Specificat...

  • Spring Data JPA 多个实体类表联合视图查询

    Spring Data JPA 查询数据库时,如果两个表有关联,那么就设个外键,在查询的时候用Specificat...

  • mysql-数据查询语句-多表

    连接查询 连接查询,是关系数据库中最主要的查询,包括等值查询、自然连接查询、非等值查询、自身连接查询、外连接查询和...

  • mysql---连接查询

    连接查询(多表查询)内连接外连接---左外连接---右外连接 前提条件:多张表之间要存在相关联的字段 内连接 特征...

  • SQL多表查询高级应用

    SQL多表查询 多表连接示范 两张表t_user t_judge 给两张表设置外键约束查询内容 SQL多表查询 多...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/dfpqbftx.html