java - MyBatis拼接sql语句,如果判断空格呢?????
巴扎黑
巴扎黑 2017-04-17 13:50:26
0
3
470

是这样,最近有个需求是,如果用户在搜索框里面输入的是一个空格那就搜索值为空的数据,但是我在mybatis里面写if判断,总是不生效求大神帮忙看下,屁话少说,我上代码!

 and a.order_Remark like '%${orderRemark}%' 

传入一个空字符串(没有空格),翻译出来的sql语句是,and a.order_Remark like '%%'
然后我又改了下

   and a.order_Remark like ='' or a.order_Remark is null   and a.order_Remark like '%${orderRemark}%'   

这时候我传进去一个带有空格的字符串
翻译出来的是 and a.order_Remark like '% %'
既然第二个已经有空格了,为什么没进when的判断呢?????
求大神帮忙啊!!!!!!!!!!!!!!!

巴扎黑
巴扎黑

全員に返信 (3)
巴扎黑

你可以在传参数之前用trim()方法去掉空格,这样在mybatis里就不需要再判断了

いいねを押す+0
    洪涛

    查了百度,google还真没搜到这个问题。
    遂自己尝试解决方案,刚开始测试时发现如果是在xml的when中判断一个空格(' ')判断不出,但是判断两个空格就能判断的出。
    当时觉得很奇怪,于是想是不是单引号的锅。转念一想单引号在java中是表示字符的,怎么能和字符串相比较呢。于是我在一个空格(' ')后加了toString(),像这样这样就可以了。
    所以我猜想是一个空格的时候默认是字符,两个空格以上就会转成字符串。自己的猜想,望指正。

    いいねを押す+0
      Peter_Zhu

      如果这个很麻烦,就在java代码里面做个判断,或者判断为空,直接用个特殊字符吧,别判断空字符,要变通

      いいねを押す+0
        最新のダウンロード
        詳細>
        ウェブエフェクト
        公式サイト
        サイト素材
        フロントエンドテンプレート
        私たちについて 免責事項 Sitemap
        PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!