在ibatis的sqlmap配置文件中配置了一个存储过程,存储过程的参数用了一个parameterMap来定义。但是调试时报错“There is no statement named insertComment in this SqlMap”。id肯定没拼错;sqlmap.xml里肯定配置了对应的语句;但是还是会报这个莫名其妙的错误。
后来发现,出错原因很啼笑皆非:我在sqlmap里,是先写了存储过程的定义,然后写的参数的定义。也就是说,我是这样写的:
<procedure id="dataFilter" parameterMap="dataFilterResult">……
<parameterMap class="java.util.HashMap" id="dataFilterResult">……
后来改成先写参数后写存储过程,就是这样:
<parameterMap class="java.util.HashMap" id="dataFilterResult">……
<procedure id="dataFilter" parameterMap="dataFilterResult">……
就没问题了。
看来,ibatis对sqlmap配置的解析是解释型的,读取一段解析一段;而不是先把全部配置读取完毕后再整体进行解析。
本文转自 斯然在天边 51CTO博客,原文链接:http://blog.51cto.com/winters1224/797946,如需转载请自行联系原作者
org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration
org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration
org.apache.ibatis.exceptions.PersistenceException: ###Error querying database. Cause: com.mysql.jd
原因:mysql的驱动包mysql-connector-java-x.x.x-bin.jar没导对
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration.
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration.
mybatis 出现org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.异常
mybatis 出现org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.异常
Data Access 之 MyBatis(三) - SQL Mapping XML(Part A)
Data Access 之 MyBatis(三) - SQL Mapping XML(Part A)
HQL查询 HQL Named parameter [xxx] not set 的解决办法
HQL查询 HQL Named parameter [xxx] not set 的解决办法
mybatis映射xml配置文件报错:<statement> or DELIMITER expected, got ‘id‘
mybatis映射xml配置文件报错:<statement> or DELIMITER expected, got ‘id‘
什么是SqlMap
Sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点:
完全支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。
Spring Data之@Query中的org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML