当mapper.xml里和mapper.java里都配置一个sql时,出现什么情况?

    public V put(String key, V value) {
            if (this.containsKey(key)) {
                throw new IllegalArgumentException(this.name + " already contains value for " + key);
            } else {
                if (key.contains(".")) {
                    String shortKey = this.getShortName(key);
                    if (super.get(shortKey) == null) {
                        super.put(shortKey, value);
                    } else {
                        super.put(shortKey, new Configuration.StrictMap.Ambiguity(shortKey));
                    }
                }
                return super.put(key, value);
            }
        }

会抛出如下第3行异常

因为mybatis框架添加了一个StrictMap类,继承自HashMap,当put已经存在的key时,抛出异常。 
从上面的过程中我们可以看到,在xml解析的key和方法注解解析出来的key是有可能重复的,如果重复了StrictMap的put方法就会  抛出异常

 

你可能感兴趣的:(mybatis源码分析)