ibaits在sqlmap-mapping-xxx.xml文件中,写完sql,我们往往会忽略一些细节的问题,下面将这几天遇到的一些简单点且不太注意的问题总结一下。
1. The content of elements must consist of well-formed character data or markup.
java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:84)
at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:62)
......
如果xml中出现这个问题, 在启动的时候就会直接报错。
解决方案:
在查询条件中遇到>=, <=, >, < 等这些字符的时候,需要将这些他们包含在<!CDATA[[ ]]>里面,然后整个sql语句才会正确执行,不然会遇到报错信息如上。
2. Cause: java.sql.SQLException: ORA-00911: 无效字符
遇到这种问题的可能性只有以下几种情况: 1. 在字段中间多了标点符号; 2. 查询末尾多了分号;。。。等等一系列的特殊符号导致的这个问题出现。