org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map

本文解析了在MyBatis中常见的错误:使用resultMap属性为java.util.Map时出现的IncompleteElementException。正确做法是将resultMap替换为resultType,并设置其值为java.util.Map。

项目启动报错:

org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map

 

根据错误提示,检查到以下错误:

resultMap="java.util.Map"

 

正确写法:

resultType="java.util.Map"

异常报告 消息 Request processing failed; nested exception is org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'cn.com.mapper.User1Mapper.userMap' referenced from 'cn.com.mapper.User1Mapper.listBooksByUserid' 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'cn.com.mapper.User1Mapper.userMap' referenced from 'cn.com.mapper.User1Mapper.listBooksByUserid' org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) javax.servlet.http.HttpServlet.service(HttpServlet.java:555) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 根本原因。 org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'cn.com.mapper.User1Mapper.userMap' referenced from 'cn.com.mapper.User1Mapper.listBooksByUserid' org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:341) org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:285) org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:113) org.apache.ibatis.session.Configuration.lambda$buildAllStatements$2(Configuration.java:816) java.base/java.util.Collection.removeIf(Collection.java:576) org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:815) org.apache.ibatis.session.Configuration.hasStatement(Configurat
05-31
我正在编辑【Java】代码,遇到了 【java.lang.ExceptionInInitializerError at pers.huangyuhui.sms.dao.StudentMapperTest.testGetStudentList(StudentMapperTest.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at junit.textui.TestRunner.doRun(TestRunner.java:116) at com.intellij.junit3.JUnit3IdeaTestRunner.doRun(JUnit3IdeaTestRunner.java:115) at junit.textui.TestRunner.doRun(TestRunner.java:109) at com.intellij.junit3.JUnit3IdeaTestRunner.startRunnerWithArgs(JUnit3IdeaTestRunner.java:47) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58) Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in pers/huangyuhui/sms/mapper/StudentMapper.xml ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'pers/huangyuhui/sms/mapper/StudentMapper.xml'. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'StudentInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: StudentInfo at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:52) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:36) at pers.huangyuhui.sms.util.MyBatisUtil.<clinit>(MyBatisUtil.java:32) ... 20 more Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'pers/huangyuhui/sms/mapper/StudentMapper.xml'. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'StudentInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: StudentInfo at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:133) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:110) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:50) ... 22 more Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'pers/huangyuhui/sms/mapper/StudentMapper.xml'. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'StudentInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: StudentInfo at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:127) at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:100) at org.apache.ibatis.builder.xml.XMLConfigBuilder.mappersElement(XMLConfigBuilder.java:406) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:131) ... 24 more Caused by: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'StudentInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: StudentInfo at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:103) at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:105) at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:143) at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:135) at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:125) ... 27 more Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'StudentInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: StudentInfo at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:128) at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:132) at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:101) ... 31 more Caused by: java.lang.ClassNotFoundException: Cannot find class: StudentInfo at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:226) at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:103) at org.apache.ibatis.io.Resources.classForName(Resources.java:322) at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:124) ... 33 more 】 ,请帮我检查并改正错误点。我的原始代码如下: 【package pers.huangyuhui.sms.dao; import junit.framework.TestCase; import org.apache.ibatis.session.SqlSession; import pers.huangyuhui.sms.mapper.StudentMapper; import pers.huangyuhui.sms.model.Paging; import pers.huangyuhui.sms.model.StudentInfo; import pers.huangyuhui.sms.util.MyBatisUtil; import java.util.HashMap; import java.util.Map; public class StudentMapperTest extends TestCase { public void testGetUserInfo() { } public void testAddStudent() { } public void testGetStudentList() { SqlSession sqlSession = MyBatisUtil.getSqlSession(); StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class); StudentInfo studentInfo = new StudentInfo(); studentInfo.setId(0); studentInfo.setName(null); studentInfo.setClassID(0); System.out.println(studentMapper.getStudentListNum(studentInfo)); int currentPage = 1; int pageSize = 10; Paging paging = new Paging(currentPage, pageSize); Map<String , Object> map = new HashMap<>(); map.put("name" , studentInfo.getName()); map.put("classID" , studentInfo.getClassID()); map.put("id" , studentInfo.getId()); map.put("start" , paging.getPageStart()); map.put("size" , paging.getPageSize()); System.out.println(map); System.out.println(studentMapper.getStudentList(map).toString()); sqlSession.close(); } public void testGetStudentListNum() { } public void testEditStudentInfo() { } public void testDeleteStudent() { } public void testModifyPassword() { } }】
06-11
"C:\Program Files\Java\jdk-9.0.4\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:D:\2025zjwdezuoye\IntelliJ IDEA 2020.1\lib\idea_rt.jar=64683:D:\2025zjwdezuoye\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\2025zjwdezuoye\IntelliJ IDEA 2020.1\lib\idea_rt.jar;D:\2025zjwdezuoye\IntelliJ IDEA 2020.1\plugins\junit\lib\junit5-rt.jar;D:\2025zjwdezuoye\IntelliJ IDEA 2020.1\plugins\junit\lib\junit-rt.jar;C:\Users\86177\mybatistest\target\test-classes;C:\Users\86177\mybatistest\target\classes;C:\Users\86177\.m2\repository\org\mybatis\mybatis\3.5.2\mybatis-3.5.2.jar;C:\Users\86177\.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\86177\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\86177\.m2\repository\mysql\mysql-connector-java\8.0.11\mysql-connector-java-8.0.11.jar;C:\Users\86177\.m2\repository\com\google\protobuf\protobuf-java\2.6.0\protobuf-java-2.6.0.jar;C:\Users\86177\.m2\repository\log4j\log4j\1.2.12\log4j-1.2.12.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 Test.PersonTest,test1 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'com.itheima.mapper.IdCardMapper.studentMap' referenced from 'com.itheima.mapper.IdCardMapper.findAllStudent' ### Cause: org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'com.itheima.mapper.IdCardMapper.studentMap' referenced from 'com.itheima.mapper.IdCardMapper.findAllStudent' at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76) at Test.PersonTest.test1(PersonTest.java:16) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58) Caused by: org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'com.itheima.mapper.IdCardMapper.studentMap' referenced from 'com.itheima.mapper.IdCardMapper.findAllStudent' at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:341) at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:285) at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:113) at org.apache.ibatis.session.Configuration.lambda$buildAllStatements$2(Configuration.java:816) at java.base/java.util.Collection.removeIf(Collection.java:414) at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:815) at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:753) at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:748) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:146) ... 25 more Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.itheima.mapper.IdCardMapper.studentMap at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:964) at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:674) at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:339) ... 33 more 进程已结束,退出代码 -1
09-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值