mybatis在mapper.xml中怎么处理大于、小于、不等于号
第一种方法:
使用转义字符
大于号 > >
大于等于号 >= >=
小于号 < <
小于等于号 <= <=
与 & &
双引号 " "
单引号 ' '
sql如下:
<if test="beginTimeStr != null">
and file.created_at >= '${beginTimeStr}'
</if>
<if test="endTimeStr != null">
and file.created_at <= '${endTimeStr}'
</if>
例如常见的时间比较:
错误写法
<select id="select" parameterType="xxx" resultMap="xxx">
select
distinct
<include refid="Base_Column_List" />
from xxx
<where>
<if test="createDate != null">
create_date <= #{createDate}
</if>
</where>
</select>
正确写法
<select id="select" parameterType="xxx" resultMap="xxx">
select
distinct
<include refid="Base_Column_List" />
from xxx
<where>
<if test="createDate != null">
create_date <= #{createDate}
</if>
</where>
</select>
第二种方法:
使用<![CDATA[ ]]>
因为xml格式遇到这种格式会把方括号里的内容原样输出,不进行解析,如:
大于等于 <![CDATA[ >= ]]>
小于等于 <![CDATA[ <= ]]>
sql如下:
<if test="beginTimeStr != null">
<![CDATA[ and file.created_at >= '${beginTimeStr}' ]]>
</if>
<if test="endTimeStr != null">
<![CDATA[ and file.created_at <= '${endTimeStr}' ]]>
</if>