Hello I trying to write a simple swing gui application using ibatis 3.x.x. I have a few problems doing it with the current documentation. I'll try to explain my problems.
1) The example code for mapper : <select id=”selectPerson” parameterClass=”int” resultClass=”hashmap”> SELECT * FROM PERSON WHERE ID = #{id} </select> Well i can't seem to use parameterClass or resultClass. They are not defined in dtd nor in documentation. I don't know if using parameterType and resultType gives the same result. 2) mapping classes from xml : I dont think it is enough documented. I tried to write a mapper class and could not manage to do it. What i tried to do is. -a UserMapper interface which defines a selectUser function. public interface UserMapper { public User selectUser(int id); } -a UserMapper.xml <mapper namespace="com.erdm.ibatistest.UserMapper"> <select id="selectUser" parameterType="int" resultType="hashmap"> SELECT * FROM users WHERE id = #{id} </select> </mapper> -in my configuration.xml <mappers> <mapper resource="com/erdm/ibatistest/UserMapper.xml" /> </mappers> having the error Exception in thread "AWT-EventQueue-0" org.apache.ibatis.exceptions.IbatisException: ### Error building SqlSession. ### The error may exist in com/erdm/ibatistest/UserMapper.xml ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.erdm.ibatistest.UserMapper.selectUser at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:31) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:14) at com.erdm.ibatistest.MainJFrame.<init>(MainJFrame.java:164) at com.erdm.ibatistest.MainJFrame$1.run(MainJFrame.java:70) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.erdm.ibatistest.UserMapper.selectUser at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:62) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:47) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:28) ... 11 more Caused by: java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.erdm.ibatistest.UserMapper.selectUser at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:50) at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:31) at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.loadXmlResource(MapperAnnotationBuilder.java:50) at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:29) at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:42) at org.apache.ibatis.mapping.Configuration.addMapper(Configuration.java:309) at org.apache.ibatis.builder.xml.XMLMapperBuilder.bindMapperForNamespace(XMLMapperBuilder.java:227) at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:32) at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:221) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:60) ... 13 more Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.erdm.ibatistest.UserMapper.selectUser at org.apache.ibatis.mapping.Configuration$StrictMap.put(Configuration.java:349) at org.apache.ibatis.mapping.Configuration.addMappedStatement(Configuration.java:289) at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:213) at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:59) at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:185) at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:48) ... 22 more Can't seem to get the mapper class work (old fashion way is fine). I would be glad if you could help me further. Thanks in advance. _________________________________________________________________ More than messages–check out the rest of the Windows Live™. http://www.microsoft.com/windows/windowslive/