为了账号安全,请及时绑定邮箱和手机立即绑定

自定义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;
    }

有可能什么原因造成的啊


正在回答

4 回答

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

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

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

1 回复 有任何疑惑可以回复我~
#1

慕神7199138 提问者

想请问一下,同样是关于userMapperCustom.queryUserSimplyInfoById(userId)的问题, 现在这个函数返回了一个null,然后呢这个userList里面就有一个null的元素,size为1,userList.isEmpty()为FALSE, userList.toArray())=[null] 控制台输出了aaaaa,最后返回为空,这个是因为我数据库里面抽出的数据是0件吗?
2019-04-16 回复 有任何疑惑可以回复我~
#2

慕神7199138 提问者

+------------------+----------+---------+-----------+-----------+ | usr_id | usr_name | usr_pwd | updt_date | updt_time | +------------------+----------+---------+-----------+-----------+ | 190413CT7Z2Y8Y3C | xuh001 | 123456 | 20190414 | 131115 |
2019-04-16 回复 有任何疑惑可以回复我~
#3

慕神7199138 提问者

<mapper namespace="com.xhstudy.myfirstSpringBoot.mapper.SysUserMapperCustom" > <select id="queryUserSimplyInfoById" resultType="com.xhstudy.myfirstSpringBoot.pojo.SysUser" parameterType="java.lang.String"> select * from sys_user where usr_id = #{usrId,jdbcType=VARCHAR}; </select> </mapper>
2019-04-16 回复 有任何疑惑可以回复我~
#4

慕神7199138 提问者

另外想问一下,怎么看select * from sys_user where usr_id = #{usrId,jdbcType=VARCHAR} 中usrId正确的接受到了给的值啊
2019-04-16 回复 有任何疑惑可以回复我~
查看1条回复

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

1 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~
#1

慕神7199138 提问者

debug显示 userList里面有值,放了一个null进去,size为1,我怀疑给的参数没有传到sql文里去,导致sql抽出数据为空。
2019-04-17 回复 有任何疑惑可以回复我~

@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件吗?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信