解决IDEA中src文件夹下不编译xml文件或报错Invalid bound statement (not found):XXX

首先IDEA与Eclipse不同,IDEA的maven项目中,(src/main/java)即默认源代码目录的xml等资源文件并不会在编译期间打包进入class文件夹,而是直接忽略掉。如果编程工具使用的是Eclipse,Eclipse在编译期间会自动将src目录下xml等资源文件打包到classes文件夹。

当在IDEA中使用MyBatis时,一般会创建一个SQL映射的配置文件,这个文件如果是在(src/main/java)目录下,编译后在target目录下是找不到这个文件的,下面就是在IDEA工具编程springboot时遇到的问题

解决方案一:如果没有特殊的需求,xml文件等不需要放在(src/main/java)下,可以在src根目录下创建resources文件夹,创建完成后再将xml等文件放入即可。maven在编译期间会将resources文件夹中的xml等资源文件一起打包到classes目录

同时,我们需要在配置文件中指定mapper.xml文件的位置。
如果是application.properties文件,需要加上

mybatis.mapper-locations=classpath:mapper/*.xml

如果是application.yml文件,需要加上

mybatis:
  mapper-locations: classpath*:mapper/*.xml

如果是普通的spring(SSM项目,需要加上

<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="druidDataSource"/>
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
    <!-- 配置mapper文件的位置 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>

解决方案二:加上maven的pom文件配置,首先在pom文件中找到<bulid></build>节点,改为下面代码

<build>  
  <resources>  
    <!-- mapper.xml文件在java目录下 -->
    <resource>  
      <directory>src/main/java</directory>  
        <includes>  
          <include>**/*.xml</include>  
        </includes>  
    </resource>  
    <!-- mapper.xml文件在resources目录下-->
    <resource>
        <directory>src/main/resources</directory> 
    </resource>
  </resources>  
</build>

以上两种方法就大功告成啦,小小代码希望能帮助遇到问题的同仁。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值