使用mybatis的逃脱符号

时间:2013-11-25 15:32:29

标签: oracle escaping mybatis ibatis

我在我的batis上有一个动态查询,我需要转义%符号。

这是我的查询的一部分(我尝试了很多不同的组合)

<choose>
            <!-- Titulo     -->     
            <when test="titulo != null">                            
                lower(p.titulo) like '%'||\||#{titulo}||'%' ESCAPE '\'

这就是我需要的:

select * from publicaciones where titulo like '%/%%' escape '/';  //this works perfect in oracle.

mybatis中该查询的正确语法是什么?

1 个答案:

答案 0 :(得分:0)

假设我想写下一个查询:
select * from employees where emp_id < 100

<导致问题 您有2个选择:
最简单的方法是使用你想要的字符的ASCII码。
它的ASCII值为60(您可以在here或任何其他ASCII表中查找它。) 所以更换'&lt;'将是:'&amp;#(ASCII_VALUE);'这是'&lt;' 然后我会写下一个查询:
select * from employees where emp_id &#60; 100

另一种选择是使用CDATA,如here所示 `

<statement id="SelectPersonsByAge" parameterClass="int" resultClass="Person">
  <![CDATA[ 
     SELECT * FROM PERSON WHERE AGE > #value# 
  ]]>
</statement>`