本帖最后由 sweat89 于 2012-12-01 12:39:22 编辑

解决方案 »

  1.   

    我就是用的select * from emp where title like   '%' || #title# || '%' ,LZ你不能查询出结果吗?
    sqlid的参数类型,一般都是Map,或者String<select id="getAddressPoolConfigCount" resultClass="Integer"
    parameterClass="Map">
    select count(*) from TMS_ADDRESS_POOL_CONFIG tapc, SYS_CITY
    sc,SYS_PROVINCE sp where tapc.PROVINCE_ID = sp.PROVINCE_ID and
    tapc.CITY_ID = sc.CITY_ID
    <isNotEmpty prepend="AND" property="provinceId">
    tapc.PROVINCE_ID like '%' || #provinceId#|| '%'
    </isNotEmpty>
    <isNotEmpty prepend="AND" property="cityId">
    tapc.CITY_ID like '%' || #cityId#|| '%'
    </isNotEmpty>
    <isNotEmpty prepend="AND" property="configFlag">
    tapc.CONFIG_FLAG like '%' || #configFlag#|| '%'
    </isNotEmpty>
    </select>
      

  2.   

    我的参数不是MAP,是parameterClass,按理说它会调用VO的getTitle方法取值吧。跟参数无关吧
      

  3.   

      select * from emp where title like '%$title$%'
    能查出结果,但是你懂得,有sql injection。 ibatis不会有SQL注入 楼主写的就是对的  就这么用没问题的
      

  4.   

    呵呵,找到原因了。
    我用的是mysql,而mysql的字符串连接操作是用concat而非 ||