com.ibatis.sql地图.client.SqlMapException 异常

com.ibatis.sqlmap.client.SqlMapException 错误
Exception in thread "main" java.lang.ExceptionInInitializerError
	at com.tangjian.test.SelectDemo01.main(SelectDemo01.java:16)
Caused by: 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: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There is already a statement named selectAllAccount1 in this SqlMap.
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:49)
	at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
	at com.tangjian.ibatis.AccountDAO.<clinit>(AccountDAO.java:22)
	... 1 more
Caused by: 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: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There is already a statement named selectAllAccount1 in this SqlMap.
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:46)
	... 3 more
Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There is already a statement named selectAllAccount1 in this SqlMap.
	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51)
	... 4 more
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There is already a statement named selectAllAccount1 in this SqlMap.
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:40)
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$10.process(SqlMapConfigParser.java:270)
	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
	... 8 more
Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There is already a statement named selectAllAccount1 in this SqlMap.
	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51)
	... 11 more
Caused by: com.ibatis.sqlmap.client.SqlMapException: There is already a statement named selectAllAccount1 in this SqlMap.
	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.addMappedStatement(SqlMapExecutorDelegate.java:207)
	at com.ibatis.sqlmap.engine.config.MappedStatementConfig.<init>(MappedStatementConfig.java:114)
	at com.ibatis.sqlmap.engine.config.SqlMapConfiguration.newMappedStatementConfig(SqlMapConfiguration.java:159)
	at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.parseGeneralStatement(SqlStatementParser.java:73)
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$21.process(SqlMapParser.java:361)
	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
	... 15 more


自己在编写一个简单的select例子的时候碰到的问题,找了十多分钟还没找到原因。

到后来认真看了下报错信息,终于找到了问题原因了。

就在【There is already a statement named selectAllAccount1 in this SqlMap.】 中。

原来在sqlMap.xml文件中有两个相同的select标签的ID相同了。