用指定逆向工程文件生成内容后,内容是这样的
然后就开始了测试里面生成的方法,
但是一运行就报错
org.apache.ibatis.exceptions.PersistenceException:
### Error building SqlSession.
### The error may exist in com/dao/AdminMapper.xml
### The error occurred while processing mapper_resultMap[BaseResultMap]
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.dao.AdminMapper.BaseResultMap
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:79)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:63)
at com.util.SqlSessionUtil.<clinit>(SqlSessionUtil.java:17)
at com.test.Test.main(Test.java:11)
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.dao.AdminMapper.BaseResultMap
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:106)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:89)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:77)
... 3 more
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.dao.AdminMapper.BaseResultMap
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:117)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:89)
at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.loadXmlResource(MapperAnnotationBuilder.java:159)
at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:113)
at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:66)
at org.apache.ibatis.binding.MapperRegistry.addMappers(MapperRegistry.java:91)
at org.apache.ibatis.binding.MapperRegistry.addMappers(MapperRegistry.java:99)
at org.apache.ibatis.session.Configuration.addMappers(Configuration.java:647)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:310)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:104)
... 5 more
Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.dao.AdminMapper.BaseResultMap
at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:776)
at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:748)
at org.apache.ibatis.session.Configuration.addResultMap(Configuration.java:536)
at org.apache.ibatis.builder.MapperBuilderAssistant.addResultMap(MapperBuilderAssistant.java:204)
at org.apache.ibatis.builder.ResultMapResolver.resolve(ResultMapResolver.java:44)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:281)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:248)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:240)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:113)
... 14 more
Exception in thread "main" java.lang.NullPointerException
at com.util.SqlSessionUtil.getSqlSession(SqlSessionUtil.java:32)
at com.test.Test.main(Test.java:11)
这个错的主要是
Result Maps collection already contains value for com.dao.AdminMapper.BaseResultMap
Result Maps集合已经包含com.dao.AdminMapper.BaseResultMap的值
然后就去这个Adminmapper.xml文件中找
一看,里面的东西重复生成了五六遍,怪不得。
虽然知道了报错的原因,但是处理却不是很好处理,不可能每次都去删掉这些重复的代码,要老命的。只能从根源上解决
然后就找到了解决的办法,原文章页面在下面
https://blog.csdn.net/weixin_41859877/article/details/103453202
解决办法就是在连接数据库信息的后面加上这一句:
<property name="nullCatalogMeansCurrent" value="true"/>
大致内容就是如此,添加之后重新生成一下就欧克了