千家信息网

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值"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

参数 内容 结果 还是 不行 指针 文件 老是 语句 尝试 单个 字符 字符串 对象 方法 时候 时刻 更多 篇文章 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 简单好看的网络安全手抄报 数据库将学生的学分分类 电脑小白学软件开发 永州学软件开发好不好 宝山区智能软件开发费用是多少 硅谷如何定制软件开发 金山区怎样软件开发 数据库连接查询有哪几种 佛山软件开发公司哪个好 网络游戏用什么服务器 dj数据库怎么查询 关于网络安全的动漫人物绘画 网警开展国家网络安全宣传 苹果电脑怎么登陆腾讯云服务器 小程序云开发数据库删除失败 为什么很多人从事软件开发 新生网络安全教育 数据库进行运算两个关系必须 网络安全周主题教育观后感 江苏微动网络技术有限公司电话 中国新华互联网科技 北京大数据软件开发服务 网络安全法泄露信息多少条获刑 软件开发项目经理收入高吗 校企软件开发合作协议 网络正常但是连接服务器失败 当当网 网络安全工资 数据库表偏移量 江苏数据库日志审计管理系统 第五人格服务器登录失败
0