大家是否都知道如何区分方法的重载?
具体以来与以下几点:
①方法名相同,参数列表长度相同参数类型不同
②方法名相同,参数列表长度不同
符合上面几点的都可以被称之为方法重载!
在接触到Mybatis后,发现XxxMapper.java的接口以及XxxMapper.xml中却不允许重载方法的配置了。
期间遇到报错信息如下:
java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.whw.mapper.MovieMapper.getMoviesByGenre
at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:872)
at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:844)
at org.apache.ibatis.session.Configuration.addMappedStatement(Configuration.java:668)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:302)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:109)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:135)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildState

本文探讨了在Mybatis的Mapper接口和XML配置文件中,方法重载的问题。根据报错信息,Mybatis不支持XML配置文件中的方法重载,因为ID不允许重复,这会导致Mapper动态代理过程出错。因此,Mapper接口中的方法名也必须唯一。
最低0.47元/天 解锁文章
750

被折叠的 条评论
为什么被折叠?



