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

在SSM整合过程中,遇到mapper.xml未被扫描导致的bean创建错误和invalid bound statement问题。错误源于mapper.xml文件放置位置不当,应置于src/main/resources下。此外,解决方法包括在pom.xml中配置扫描mapper.xml,或将mapper接口和xml文件放于同一目录。通过调整目录结构和配置,成功解决了mapper扫描问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1 创建bean userInfoMapper出错


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

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


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:爽歪歪

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

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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值