mybatis java.sql.SQLException: ORA-00907: 缺失右括号
2015-11-17 22:35
786 查看
mybatis java.sql.SQLException: ORA-00907: 缺失右括号
url: http://flyeagle.iteye.com/blog/18839802013-06-07 16:42
在使用spring+mybatis进行应用开发时,使用了mybatis的动态SQL,添加动态查询语句:
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/c072a69033834504f86d68bed94b0eb4.png)
<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>
添加动态查询语句:
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/c072a69033834504f86d68bed94b0eb4.png)
<if test="datafrom!= null and datafrom!= ''"> AND a.datafrom like #{datafrom} </if>
报java.sql.SQLException: ORA-00907: 缺失右括号 错误。去除
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/c072a69033834504f86d68bed94b0eb4.png)
<if test="datafrom!= null and datafrom!= ''"> AND a.datafrom like #{datafrom} </if>
后可以正常执行,原来添加
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/c072a69033834504f86d68bed94b0eb4.png)
<![CDATA[ ]]>
后解析器不对它进行解析<if>不会当mybatis的标签解析,而是以大于符号和小于符号进行解析,所以报错。去除
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/c072a69033834504f86d68bed94b0eb4.png)
<![CDATA[ ]]>
但是,去除<![CDATA[ ]]> 后,发现
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/c072a69033834504f86d68bed94b0eb4.png)
datetime > #to_DATE(#{startDate}, 'yyyy-mm-dd')
又报错,需要对大于符号进行转义,修改成:
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201704/c072a69033834504f86d68bed94b0eb4.png)
datetime > #to_DATE(#{startDate}, 'yyyy-mm-dd')
问题解决。
转义表:
> | > | 大于 |
< | < | 小于 |
& | & | 和 |
>= | >= | 大于等于 |
<= | <= | 小于等于 |
相关文章推荐
- Java安全机制
- Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么?
- 用java代码实现观察者模式
- java 解析properties文件的两种方法
- 对java servlet 单例模式的理解
- Java other
- Regular Expression Matching in Java
- 数组
- Java dbf文件写入远程服务器
- java_25-26
- JAVA 中BIO,NIO,AIO的理解
- think in java 第六章 类再生
- Java 线程池的作用
- Java之路--2015年11月17日
- 书上说Java中方法要用类名调用,我发现
- 关于Java代码中一个方法代码超出65535字节详解
- Java命名规则
- Java反射机制浅析
- Java反射机制浅析
- Java实用手册