MAVEN 编译spring boot + mybatis 出现 Error parsing Mapper XML.

问题描述:在spring boot + mybatis 在Intellij工具中能正常编译运行, 但是使用maven能编译通过, 无法正确启动,启动时出现一下异常

这里写代码片Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-02-15 17:39:20.961 ERROR 1638 --- [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'resourceUpdateInfoServer': Unsatisfied dependency expressed through field 'resourceUpdateInfoMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'resourceUpdateInfoMapper' defined in URL [jar:file:/home/seengene/work/seengene/ARContentManage/target/arcontentmanage-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/seengenearcontent/db/scenic/ResourceUpdateInfoMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'URL [jar:file:arcontentmanage-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes/mapper/sg_TriggerIncidentStatiticsMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.seengenearcontent.db.statitics.TriggerIncidentStatiticsMapper.sg_incident_result
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:569) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:751) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.1.RELEASE.jar!/:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) [spring-boot-1.4.1.RELEASE.jar!/:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) [spring-boot-1.4.1.RELEASE.jar!/:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.4.1.RELEASE.jar!/:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.1.RELEASE.jar!/:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.1.RELEASE.jar!/:1.4.1.RELEASE]
    at com.seengenearcontent.ArContentManageApplication.main(ArContentManageApplication.java:58) [classes!/:0.0.1-SNAPSHOT]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111]
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [arcontentmanage-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [arcontentmanage-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [arcontentmanage-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58) [arcontentmanage-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'resourceUpdateInfoMapper' defined in URL [jar:file:/home/seengene/work/seengene/ARContentManage/target/arcontentmanage-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/seengenearcontent/db/scenic/ResourceUpdateInfoMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'URL [jar:file:arcontentmanage-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes/mapper/sg_TriggerIncidentStatiticsMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.seengenearcontent.db.statitics.TriggerIncidentStatiticsMapper.sg_incident_result
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1312) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1204) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1128) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:566) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    ... 27 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'URL [jar:file:arcontentmanage-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes/mapper/sg_TriggerIncidentStatiticsMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.seengenearcontent.db.statitics.TriggerIncidentStatiticsMapper.sg_incident_result
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1128) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1023) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1128) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1297) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    ... 38 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'URL [jar:file:arcontentmanage-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes/mapper/sg_TriggerIncidentStatiticsMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.seengenearcontent.db.statitics.TriggerIncidentStatiticsMapper.sg_incident_result
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    ... 50 common frames omitted
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'URL [jar:file:arcontentmanage-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes/mapper/sg_TriggerIncidentStatiticsMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.seengenearcontent.db.statitics.TriggerIncidentStatiticsMapper.sg_incident_result
    at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:522) ~[mybatis-spring-1.3.0.jar!/:1.3.0]
    at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:381) ~[mybatis-spring-1.3.0.jar!/:1.3.0]
    at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:546) ~[mybatis-spring-1.3.0.jar!/:1.3.0]
    at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:130) ~[mybatis-spring-boot-autoconfigure-1.1.1.jar!/:1.1.1]
    at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$9ab86fa9.CGLIB$sqlSessionFactory$2(<generated>) ~[mybatis-spring-boot-autoconfigure-1.1.1.jar!/:1.1.1]
    at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$9ab86fa9$$FastClassBySpringCGLIB$$a5b4cf74.invoke(<generated>) ~[mybatis-spring-boot-autoconfigure-1.1.1.jar!/:1.1.1]
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:356) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$9ab86fa9.sqlSessionFactory(<generated>) ~[mybatis-spring-boot-autoconfigure-1.1.1.jar!/:1.1.1]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) ~[spring-beans-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
    ... 51 common frames omitted
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.seengenearcontent.db.statitics.TriggerIncidentStatiticsMapper.sg_incident_result
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:120) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:92) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:520) ~[mybatis-spring-1.3.0.jar!/:1.3.0]
    ... 64 common frames omitted
Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.seengenearcontent.db.statitics.TriggerIncidentStatiticsMapper.sg_incident_result
    at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:837) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:809) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.session.Configuration.addResultMap(Configuration.java:591) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.builder.MapperBuilderAssistant.addResultMap(MapperBuilderAssistant.java:214) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.builder.ResultMapResolver.resolve(ResultMapResolver.java:47) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:285) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:252) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:244) ~[mybatis-3.4.0.jar!/:3.4.0]
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:116) ~[mybatis-3.4.0.jar!/:3.4.0]
    ... 66 common frames omitted

项目目录结构:
这里写图片描述

sg_TriggerIncidentStatiticsMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC
        "-//mybatis.org//DTD com.example.Mapper 3.4//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace = "com.seengenearcontent.db.statitics.TriggerIncidentStatiticsMapper">
    <resultMap id = "sg_incident_result" type = "com.seengenearcontent.entity.statitics.TriggerIncidentStatitics">
        <result property = "id" column = "id"/>
        <result property = "seengene_id" column = "seengene_id"/>
        <result property = "startTime" column = "startTime"/>
        <result property = "endTime" column = "endTime"/>
        <result property = "incidentType" column = "incidentType"/>
        <result property = "endType" column = "endType"/>
        <result property = "triggerObject_id" column = "triggerObject_id"/>
        <result property = "resultType" column = "resultType"/>
        <result property = "scenic_id" column = "scenic_id"/>
    </resultMap>
    <select id = "findIncidentById" resultMap = "sg_incident_result">
        SELECT * FROM triggerIncidentStatitics_tbl where id = #{id};
    </select>
    <insert id="addIncident" parameterType="com.seengenearcontent.entity.statitics.TriggerIncidentStatitics">
        INSERT INTO triggerIncidentStatitics_tbl(seengene_id, startTime, endTime, incidentType, endType, triggerObject_id, resultType, scenic_id)
        values(#{seengene_id}, #{startTime}, #{endTime}, #{incidentType}, #{endType}, #{triggerObject_id}, #{resultType}, #{scenic_id});
    </insert>
    <delete id="deleteIncident" parameterType="int">
        DELETE FROM triggerIncidentStatitics_tbl WHERE id=#{id};
    </delete>
    <update id="updateIncident" parameterType="com.seengenearcontent.entity.statitics.TriggerIncidentStatitics">
        UPDATE triggerIncidentStatitics_tbl SET seengene_id=#{seengene_id}, startTime=#{startTime}, endTime=#{endTime}, incidentType=#{incidentType},
        endType=#{endType}, triggerObject_id=#{triggerObject_id}, resultType=#{resultType}, scenic_id=#{scenic_id} WHERE id=#{id};
    </update>
    <select id="findCountByCondition" resultType="int" parameterType="int">
        SELECT COUNT(*) FROM triggerIncidentStatitics_tbl WHERE 1 = 1
        <if test="seengene_id != 0">
           AND seengene_id = #{seengene_id}
        </if>
        <if test="startTime != 0">
            AND startTime = #{startTime}
        </if>
        <if test="endTime != 0">
            AND endTime = #{endTime}
        </if>
        <if test="incidentType != 0">
            AND inclidentType = #{incidentType}
        </if>
        <if test="endType != 0">
            AND endType = #{endType}
        </if>
        <if test="triggerObject_id != 0">
            AND triggerObject_id = #{triggerObject_id}
        </if>
        <if test="resultType != 0">
            AND resultType = #{resultType}
        </if>
        <if test="scenic_id != 0">
            AND scenic_id = #{scenic_id}
        </if>
    </select>
    <select id="findByCondition" resultMap="sg_incident_result" parameterType="com.seengenearcontent.entity.statitics.TriggerIncidentStatitics">
        SELECT * FROM triggerIncidentStatitics_tbl WHERE 1 = 1
        <if test="seengene_id != 0">
            AND seengene_id = #{seengene_id}
        </if>
        <if test="startTime != 0">
            AND startTime = #{startTime}
        </if>
        <if test="endTime != 0">
            AND endTime = #{endTime}
        </if>
        <if test="incidentType != 0">
            AND inclidentType = #{incidentType}
        </if>
        <if test="endType != 0">
            AND endType = #{endType}
        </if>
        <if test="triggerObject_id != 0">
            AND triggerObject_id = #{triggerObject_id}
        </if>
        <if test="resultType != 0">
            AND resultType = #{resultType}
        </if>
        <if test="scenic_id != 0">
            AND scenic_id = #{scenic_id}
        </if>
        ;
    </select>
</mapper>

application.properties重要部分:

#mybatis
mybatis.mapperLocations=classpath*:**/mapper/sg_*.xml

出现异常时时以上配置,网上查找了很多,各种说法,概括起来就是:
在你的xml配置文件中出现了重复的id,或者是有多个同样的xml配置文件等等, 解决这个问题的方法是确保填写路径能正确唯一指向你的xml配置文件, 并且在你的配置文件中没用重复的id

<think>好的,我现在需要解决用户遇到的MyBatis报错问题:“Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource AdminDao.xml”。首先,我得理解这个错误的常见原因。根据用户提供的引用内容,问题通常与资源文件路径配置不正确有关。 首先,我应该检查XML文件的位置是否正确。用户提到AdminDao.xml没有被找到,这可能是因为文件没有放在正确的资源目录下。在Maven项目中,资源文件通常放在src/main/resources目录中,或者需要配置Maven来包含其他目录下的XML文件。如果用户将AdminDao.xml放在src/main/java下的某个包中,但没有在pom.xml中配置资源过滤,Maven可能不会将这些文件复制到target目录,导致运行时找不到文件。 接下来,需要确认MyBatis的配置文件是否正确引用了XML映射文件。在mybatis-config.xml中,<mappers>部分应该正确指向AdminDao.xml。如果使用包扫描或者类路径引用,路径是否正确?例如,如果使用<mapper resource="com/example/dao/AdminDao.xml"/>,必须确保路径与文件的实际位置完全匹配,包括大小写,因为有些操作系统对文件名大小写敏感。 另外,文件扩展名是否正确也很重要。用户提到的是AdminDao.xml,但有时候可能误写为其他扩展名,比如.txt或者没有扩展名,这会导致MyBatis无法识别。同时,检查XML文件内容是否有语法错误,比如未闭合的标签或格式错误,虽然此时错误提示是找不到文件,但这一步也不能完全忽略。 然后,考虑Maven的配置问题。用户可能在pom.xml中没有正确配置<build>部分来包含XML文件。例如,需要添加资源过滤配置,确保Maven编译时将XML文件复制到target/classes目录。例如: ```xml <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build> ``` 如果用户的XML文件放在src/main/java下的某个包中,这个配置就非常必要,否则Maven默认不会处理这些文件。 此外,清理和重新构建项目也是常见的解决方法。有时候IDE(如IntelliJ IDEA)可能没有及时同步文件,导致旧的编译结果中没有包含最新的XML文件。执行mvn clean install或重新构建项目可以解决这类问题。 还有,需要检查文件名的拼写是否正确,尤其是大小写是否匹配。例如,AdminDao.xml和admindao.xml在Linux系统下会被视为不同的文件,所以必须确保配置中的路径与实际文件名完全一致。 最后,如果用户使用的是注解而非XML配置,可能需要检查是否在接口上正确使用了@Mapper或@Select等注解,或者是否在配置中启用了Mapper接口的扫描。不过,根据错误信息,问题更可能出在XML文件本身的位置或配置上。 综上所述,解决步骤应该是:确认文件位置,检查MyBatis配置中的路径,配置Maven资源过滤,清理并重新构建项目,检查文件名大小写和扩展名,以及验证XML文件内容。如果这些步骤都正确执行,应该能够解决找不到AdminDao.xml的问题。</think>### 解决MyBatis "Could not find resource AdminDao.xml" 错误的方法 #### 1. 确认XML文件路径和位置 - **问题原因**:MyBatis默认从`src/main/resources`目录加载资源文件。若`AdminDao.xml`未放在该目录或其子目录下,会导致文件无法被识别[^2][^3]。 - **解决步骤**: - 将`AdminDao.xml`移动到`src/main/resources`目录下(例如:`src/main/resources/com/example/dao/AdminDao.xml`)。 - 若希望保留在`src/main/java`目录中,需在`pom.xml`中添加以下配置: ```xml <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> ``` #### 2. 检查MyBatis配置文件 - **问题原因**:`mybatis-config.xml`中`<mappers>`标签未正确指向XML文件[^4]。 - **解决步骤**: - 确保配置中使用**完整路径**且**大小写一致**: ```xml <mappers> <mapper resource="com/example/dao/AdminDao.xml"/> <!-- 使用斜杠分隔 --> </mappers> ``` #### 3. 验证Maven资源过滤 - **问题原因**:未配置资源过滤时,Maven会忽略非标准资源目录中的XML文件。 - **解决步骤**: - 在`pom.xml`中添加资源过滤(如步骤1所示)。 - 执行清理命令:`mvn clean install`。 #### 4. 检查文件命名和扩展名 - **问题原因**:文件名拼写错误或扩展名非`.xml`会导致加载失败[^4]。 - **解决步骤**: - 确认文件名是否为`AdminDao.xml`(注意大小写敏感)。 - 检查文件是否被错误保存为`AdminDao.xml.txt`等格式。 #### 5. 验证IDE配置 - **问题原因**:IDE缓存可能导致文件未同步到`target`目录[^3]。 - **解决步骤**: - 在IntelliJ IDEA中右键点击项目选择 **Reload Maven Project**。 - 执行 **Build → Rebuild Project**。 --- ### 示例配置修正 **原始错误配置**: ```xml <mappers> <mapper resource="com.example.dao.AdminDao.xml"/> <!-- 错误:使用点分隔路径 --> </mappers> ``` **修正后配置**: ```xml <mappers> <mapper resource="com/example/dao/AdminDao.xml"/> <!-- 正确:使用斜杠分隔 --> </mappers> ``` --- ### 相关问题 1. MyBatis如何自动扫描Mapper接口? 2. 如何在Spring Boot中集成MyBatis并避免资源路径问题? 3. MyBatis XML映射文件和注解方式有什么区别?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值