mybatis java.sql.SQLException: ORA-00907: 缺失右括号
在使用spring+mybatis进行应用开发时,使用了mybatis的动态SQL,添加动态查询语句:<select id="getSpasDataLogList"resultType="com.xxx.xxx.xxxBean" resultMap="spasDataLogMap">
<![CDATA[
select * from t_table where datetime > #to_DATE(#{startDate}, 'yyyy-mm-dd')
<if test="datafrom!= null and datafrom!= ''"> AND a.datafrom like #{datafrom} </if>
]]>
</select>
添加动态查询语句:
<if test="datafrom!= null and datafrom!= ''"> AND a.datafrom like #{datafrom} </if>
报java.sql.SQLException: ORA-00907: 缺失右括号 错误。去除
<if test="datafrom!= null and datafrom!= ''"> AND a.datafrom like #{datafrom} </if>
后可以正常执行,原来添加
<!]>
后解析器不对它进行解析<if>不会当mybatis的标签解析,而是以大于符号和小于符号进行解析,所以报错。去除
<!]>
但是,去除<!]> 后,发现
datetime > #to_DATE(#{startDate}, 'yyyy-mm-dd')
又报错,需要对大于符号进行转义,修改成:
datetime > #to_DATE(#{startDate}, 'yyyy-mm-dd')
问题解决。
转义表:
>
>
大于
<
<
小于
&
&
和
>=
>=
大于等于
<=
<=
小于等于
页:
[1]