在mybatis中,使用<if test="flag=='1'">

flag为string类型传入,其值也是“1”,但是这个等式的返回结果是false

最后发现mybatis将'1'解析为char类型,所有不相等

可将<if test="flag=='1'">改为<if test='flag=="1"'>或者<if test="flag==1">

这个误区在使用mybatis好多年都没有发现,所以尽量不要使用单字符的String字符串来进行比较

 

mybatis是用OGNL表达式来解析的,在OGNL的表达式中,单引号里单个字符会被解析成char类型(多个字符是可以的),java是强类型的,char 和一个string 会导致不等

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐