MyBatis中大于号以及小于号的表达方式
实现方案
以下介绍两种可行方法:
-
转义法
-
大于:
>
相当于 >小于:
<
相当于 <大于等于:
>=
相当于 >=小于等于:
<=
相当于 <=
<select id="view" parameterType="map" resultMap="BaseResultMap">
SELECT * FROM task t,staff s,product p WHERE t.staff_id = s.id AND t.product_id = p.id
<if test="companyId != null ">
AND t.company_id = #{companyId}
</if>
<if test="dateStart != null and dateStart !='' ">
AND UNIX_TIMESTAMP(t.date_work) >= UNIX_TIMESTAMP(#{dateStart})
</if>
<if test="dateEnd != null and dateEnd !='' ">
AND UNIX_TIMESTAMP(t.date_work) <= UNIX_TIMESTAMP(#{dateEnd})
</if>
GROUP BY t.order_no
ORDER BY t.date_work
</select>
- <![CDATA[ sql语句 ]]>
- <![CDATA[ sql语句 ]]>中的<![CDATA[ ]]>在mybatis中自动注释
<select id="selectByTime" resultType="Date" parameterType="map">
SELECT
r.stop_time
FROM
rtg r <![CDATA[
WHERE UNIX_TIMESTAMP(r.stop_time) >= UNIX_TIMESTAMP(#{startTime})
AND UNIX_TIMESTAMP(r.stop_time) <= UNIX_TIMESTAMP(#{endTime}) ]]>
</select>
或者
<select id="selectByTime" resultType="Date" parameterType="map">
SELECT
r.stop_time
FROM
rtg r
WHERE UNIX_TIMESTAMP(r.stop_time) >= UNIX_TIMESTAMP(#{startTime})
AND UNIX_TIMESTAMP(r.stop_time) <![CDATA[<]]>= UNIX_TIMESTAMP(#{endTime})
</select>