Yep, that's a typo. Should be parameterType and resultType.... Clinton
2009/8/13 Erdem Budak <erdembu...@hotmail.com> > 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.UserMappe r"> > <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.wrap > Exception(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.Eve ntDispatchThread.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.se lectUser > 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.XMLMapper > Builder.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. > > > ------------------------------ > check out the rest of the Windows Live™. More than mail–Windows Live™ goes > way beyond your inbox. More than > messages<http://www.microsoft.com/windows/windowslive/> >