使用mybatis根据主键id获取信息,偶尔查出的数据为NULL,解决根据主键id获取null值,MyBatis-plus的根据id获取信息返回nulll可以参考

业务场景:项目使用了PageHelper和MyBatis,在根据id获取信息时,有时候返回的是null值,报空指针异常。

产生问题的原因

PageHelper默认会在sql 上添加一个Count,会导致执行效率变慢和异常
下图是自己写的SQL
在这里插入图片描述最
空指针异常后的sql

解决方式:重写PageHelper的Count

示例:

dao层
      AlumniUser findOnlyByAluserId(AlumniUser alumniUser);
//重写count
    long findOnlyByAluserId_COUNT(AlumniUser alumniUser);
xml
    <select id="findOnlyByAluserId" parameterType="mobile.bean.AlumniUser" resultMap="BaseResultMap">
         select aluser.alumniuser_id,aluser.`name`,aluser.mobile_no,aluser.email,aluser.head_img,gar.grade_name as gradeName,ma.major_name as majorName
       from alumniuser aluser
        left join educationinfo educ on educ.alumniuser_id=aluser.alumniuser_id
        left join grade gar on educ.grade_id=gar.grade_id
        left join workinfo woinfo on woinfo.alumniuser_id=aluser.alumniuser_id
        left join major ma on educ.major_id=ma.major_id
    where aluser.alumniuser_id=#{alumniuserId}
    group by  aluser.alumniuser_id
    </select>

    <select id="findOnlyByAluserId_COUNT" parameterType="mobile.bean.AlumniUser" resultType="long">
         select  COUNT(1)
         from alumniuser aluser
        left join educationinfo educ on educ.alumniuser_id=aluser.alumniuser_id
        left join grade gar on educ.grade_id=gar.grade_id
        left join workinfo woinfo on woinfo.alumniuser_id=aluser.alumniuser_id
        left join major ma on educ.major_id=ma.major_id
    where aluser.alumniuser_id=#{alumniuserId}
    group by  aluser.alumniuser_id
    </select>

重写PageHelper的参考链接:https://blog.csdn.net/weixin_43917392/article/details/115511352

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值