首页 > 编程语言 > 详细

关于写SpringBoot+Mybatisplus+Shiro项目的经验分享三:问题2

时间:2020-06-11 17:02:22      阅读:45      评论:0      收藏:0      [点我收藏+]

框架: SpringBoot+Mybatisplus+Shiro

  简单介绍:关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍

 

搜索框是该项目重要的一环,由于涉及模糊查询、类型判断、参数转化等比较麻烦,所以异常也多

 

一、通过Object类型的条件无法正确判断类型

搜索时传参的表单

技术分享图片

 

Controller:得到Object类型的条件 condition

技术分享图片

 

Service实现类进行类型判断

技术分享图片

 而我无论在页面输入什么值,控制台打印的始终是 22222

技术分享图片

 

这个问题就很明显了,因为 <input type="text"> 传入的都是字符,因此怎么判断都是String

 

二、枚举类型的判断总是出问题

我的Gender属性,使用的是枚举类型,所以在传过来时,判断也是最麻烦的

第一次判断,把他转为String类型再判断是否为 男女

技术分享图片

结果很意外,既不是男又不是女,根本没有判断成功

 

于是我想到可能是本来condition就是String类型,只是无法与字符串比较

那突破点就是需要他真正的String属性来判断

技术分享图片

 

 

 所以我想到通过其中的属性 msg来比较

技术分享图片

 

 不过这里又出了问题,因为Object类型的condition,无法get到msg

 

突然想到做过一道面试题,比较  "==" 与 equals 的区别,而这个问题可能就出在这里

equals是比较2个独立的对象的内容是否相同,而 "==" 是比较2个变量值的不同

所以,我再次修改

技术分享图片

 

 

 

技术分享图片

终于判断成功了

 

这个经验教训比较深刻,也算是强化了认识 "==" 与 equals 的区别。

 

三、查询的时候,有时候行,有时候会报异常

最多的异常是:

  org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 19

意思很明确,就是查询出来的 结果太多了,再看看打印出来的Sql语句

技术分享图片

 

 这是我输入的条件为  "男" 时所出的,可以知道,确实是查到了,所以问题就是结果没有用集合装载

使用List集合

技术分享图片

 再输入 "男" 时就不会报错了

 

关于写SpringBoot+Mybatisplus+Shiro项目的经验分享三:问题2

原文:https://www.cnblogs.com/kzyuan/p/13093359.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!