在Mybatis中,sql语句中的大于号和小于号在xml文件中被视为特殊字符,直接使用可能会导致与Mybatis中的<if></if>标签、<where></where>标签等产生冲突,所以需要使用xml转义字符方法:<![CDATA[ 特殊字符 ]]>。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.slj.user.dao.IUserMapper">
<select id="selectUserList" parameterType="com.slj.user.entity.User" resultType="com.slj.user.entity.User">
select * from user
<where>
delState = 0
<if test="sex != null and sex != ''">
and sex = #{sex}
</if>
<if test="createTime != null">
and createTime <![CDATA[ <= ]]> #{createTime}
</if>
</where>
</select>
</mapper>