千家信息网

mybatis如何传入null值

发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,这篇文章给大家分享的是有关mybatis如何传入null值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mybatis 传入null值解决前端传入两个值,如果其中一个为nu
千家信息网最后更新 2024年10月01日mybatis如何传入null值

这篇文章给大家分享的是有关mybatis如何传入null值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

mybatis 传入null值解决

前端传入两个值,如果其中一个为null时,很多时候我们都很困惑,明明传入的是null,为啥mybatis 的xml文件中的if条件判断无效?

public String getPersonInfo(@PathParam("Name") String Name, @PathParam("IDCard") String IDCard)

dao层

public List getPersonInfo(@Param("name") String name, @Param("idcard") String idcard);

xml文件内容

      

每次执行都是失败的,网上很多都说要在dao层添加@param注解和xml文件内容中要加入jdbcType类型就能解决,最后还是没解决

其实还有一个点忽略了,就是传入时的null值其实是个字符串null,根本就不是null,它是个字符串null

        if (Name == null || "null".equalsIgnoreCase(Name)) {            Name = null;        }        if (IDCard == null || "null".equalsIgnoreCase(IDCard)) {            IDCard = null;        }

问题解决!

mybatis 注入老是为null

今天遇到个很弱智的问题,以此记录!时刻提醒自己

    public int delExhibion(List ids){        Integer result = null;        ExhibitionManager exhibitionManager = new ExhibitionManager();        for (String id : ids){            exhibitionManager.setId(id);            exhibitionManager.setDelFlag("1");             result += exhibitionManagerMapper.delete(id);        }        return result;    }

发现老是执行 delete 的时候 ,老是报 空指针异常

然后尝试使用: @Param 给参数加上命令

int delete(@Param("id") String id);

结果还是不行,

然后在尝试使用:对象传参,这样总该注入进去了吧

int delete(Object dx);

结果还是不行,

然后在尝试使用:Mybatis 单个参数动态语句引用:

是当我们的参数为String时,在sql语句中#{id} 会去我们传进来的参数调getId()方法获取参数,很明显,String没有对应的方法,所以报错了,那我们这里要如何引用id呢,需要采用下面的写法:

           SELECT * FROM table                                                            AND id= #{id}                                  

单Mybatis传参为单个参数时,在sql语句中需要使用 _parameter 来引用这个参数

结果还是不行。

终于过了一会儿,看代码时突然顿悟

    public int delExhibion(List ids){        Integer result = null;        for (String id : ids){             result += exhibitionManagerMapper.delete(id);        }        return result;    }

Integer result 我给他设置默认值 为null, 并且还让 reuslt 这个对象 result +=

加等于在执行数据库操作返回结果时 用 result 去接收。 这不就一定是空指针了吗。

我给 Integer result = 0; 设置个默认值为0 那也不会出现这种情况!

或者 result = 给result 初始化赋值 也不会报 空指针异常! 不过这样做在我的业务中是不对的哦。 只是不会报错. 但是获取不到我想要的执行成功条数

Integer result = null;result =  exhibitionManagerMapper.delete(id);

真的是被自己气到了。以此记录!时刻提醒自己

 public int delExhibion(List ids){        Integer result = 0;        for (String id : ids){             result += exhibitionManagerMapper.delete(id);        }        return result;    }

感谢各位的阅读!关于"mybatis如何传入null值"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0