问答详情
源自:8-4 整合MyBatis - 自定义mapper的实现

自定义userMapperCustom.queryUserSimplyInfoById(userId) 返回为空

  @Override
    public SysUser queryUserByIdCustom(String userId) {
        List<SysUser> userList = userMapperCustom.queryUserSimplyInfoById(userId);
        System.out.println( Arrays.toString(userList.toArray())+userList.isEmpty());
        if (userList != null && !userList.isEmpty()) {
            System.out.println("aaaaa");
            return (SysUser)userList.get(0);
        }
        System.out.println("bbbbb");
        return null;
    }

有可能什么原因造成的啊


提问者:慕神7199138 2019-04-16 07:43

个回答

  • 末日余晖
    2019-04-16 14:28:34
    已采纳

    两种可能。一、userId传错了,没有查到对应的信息;

    二、userList.get(0);没有进行强转为SysUser.

    最简单的方式就是debug看一下,一步步的走,看看返回值就ok,既然没有报错,那应该就是结果处理有问题啦!

  • Mr_菜鸟
    2019-04-23 18:02:30

    看pojo下类是否字段名称与属性名称保持一致

  • 末日余晖
    2019-04-17 10:14:18

    你mapper里面的是#{usrId},但你传的是userId,少了个e,不知是不是这个原因。但我好奇的是,你都能输出aaa了,为什么会返回null呢?你debug看看userList里面有值吗?

  • 慕神7199138
    2019-04-16 22:31:08

    @Override
        public SysUser queryUserByIdCustom(String userId) {
            List<SysUser> userList = userMapperCustom.queryUserSimplyInfoById(userId);
            System.out.println( Arrays.toString(userList.toArray())+userList.isEmpty());
            if (userList != null && !userList.isEmpty()) {
                System.out.println("aaaaa");
                return (SysUser)userList.get(0);
            }
            System.out.println("bbbbb");
            return null;
        }

    想请问一下,同样是关于userMapperCustom.queryUserSimplyInfoById(userId)的问题,

    现在这个函数返回了一个null,然后呢这个userList里面就有一个null的元素,size为1,userList.isEmpty()为FALSE,

    userList.toArray())=[null]

    控制台输出了aaaaa,最后返回为空,这个是因为我数据库里面抽出的数据是0件吗?