zoukankan      html  css  js  c++  java
  • 关于写SpringBoot+Mybatisplus+Shiro项目的经验分享三:问题2

    框架: 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集合

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

  • 相关阅读:
    Eclipse快捷键大全
    OOA/OOD/OOP
    SQL Server 存储过程(转)
    PowerDesigner 生成数据库方法(转)
    CDM和PDM的区别?(转)
    委托存在的理由
    提问回顾
    对软件工程常见概念的一些见解
    Gulp插件笔记
    Pascal-S代码注释
  • 原文地址:https://www.cnblogs.com/kzyuan/p/13093359.html
Copyright © 2011-2022 走看看