首先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>
以上两种方法就大功告成啦,小小代码希望能帮助遇到问题的同仁。