1、like语句
示例
@Select("select * from t_xx where Fxx =‘A‘ and Fdd like concat(‘%‘,#{dd},‘%‘)" )
@ResultMap("BaseResultMap")
List<XXXX> selectdd(String dd);
like的写法要 concat(‘%‘,#{dd},‘%‘)"
2、in语句
in语句有多种方式
第一种单字段的in匹配
建议把所需要的参数都封装到一个对象里,然后再参数类型指定类型,如<select id="select1" parameterType="com.xx.xx.data.vo.xx" resultMap="BaseResultMap"> 在sql中直接使用对象里的属性,比如定义filed1 为list类型
<if test="filed1 != null and filed1 .size > 0 ">
and Fss in
<foreach item="item" index="index" collection="filed1 " open="(" separator="," close=")">
#{item}
</foreach>
</if>
这种写法类似and Fss in (aa,bb,cc)
第二种单字段多次匹配,其实是第一种的扩展
<if test="filed1 != null and filed1 .size > 0 ">
and
<foreach item="item" index="index" collection="filed1 " open="(" separator=" or " close=")">
Fss like concat(‘%‘,#{item},‘%‘)
</foreach>
</if>
这种写法类似and ( Fss like aa or Fss like bb or Fss like cc)
3、对日期的处理,比如beginDate 是date类型
<if test="beginDate != null and beginDate != ‘‘ ">
<![CDATA[
and DATE_FORMAT(Fcreate_time, ‘%Y-%m-%d‘) >= DATE_FORMAT(#{beginDate}, ‘%Y-%m-%d‘)
]]>
</if>