SSM之mapper.xml与mapper接口的扫描问题


1 创建bean userInfoMapper出错


还有一个原因,会出现**mapper.xml不存在,(does'texist)那是因为我将mapperxml文件放在了/src/main/java/config下面,而不是放在了/src/main/resources下面

(resources目录的属性是resources存放资源,比如配置文件,java目录属性是sources,也就是源代码),


扫描二维码关注公众号,回复: 1101211 查看本文章

2出现invalid bound statement


这是mapperxml文件中没有该方法的实现??


但是打开mapperxml文件发现是有的


打开target目录,发现没有mapper配置文件


解决:pom添加节点,在build时将xml文件给扫描进去,但是后mapper配置xml文件是在target的config目录下,

<build>
    <!-- 配置插件 -->
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <port>8083</port>
                <path>/</path>
            </configuration>
        </plugin>
    </plugins>
    <resources><!--扫描配置文件-->
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>




既然resources与java都会生成到target中,如果在resources中创建一个与存放mapper接口的目录同名的目录。那么就可以将mapper与mapper.xml放到同一个目录了

例如:我的mapper的xml文件本来是在src/main/java/config/

     mapper接口是在src/main/mapper/

我所做的则是将config目录剪切到src/main/resources/,然后将config重命名为mapper

现在看target:爽歪歪

上面是我的解决方式,但是感觉很单薄

,下面分享一个写的很好的博客传送


猜你喜欢

转载自blog.csdn.net/qq_36922927/article/details/80494555