问答详情
源自:3-5 mapper的编写

关于sql语句的疑问

不明白为什么<update>中的<set>中的<if test="areaName != null">是这样写,

为什么不是<if test="#{areaName} != null">?

提问者:慕莱坞1326395 2018-03-30 14:50

个回答

  • 翔仔
    2018-03-30 21:29:35

    同学好,你感兴趣的话可以试着那样写看能否奏效,有时候框架设计者要这样咱也没办法,要不就自己写个扩展改造一下,要不就只能遵从,其实不必纠结这个,学好原理一通百通。

  • Amoo丶怜悯
    2018-07-02 18:29:57

    应为mybatis里面的if是用的ognl所以 才会直接用属性吗比较

  • morosin
    2018-03-30 18:00:20

    个人认为,会有area_name=#{areaName}这种格式的意义就是为了让sql语句能够区分,area_name是原有的字段,#{}里面是用户添加的。而<if test>里面不需要区分原有的字段和用户添加的,它判断的对象就只有这个用户添加的,既然都能识别,就没必要写得那么复杂。