IDEA的maven項目中,默認源代碼目錄下(src/main/java
目錄)的xml等資源文件並不會在編譯的時候一塊打包進classes文件夾,而是直接捨棄掉。若是使用的是Eclipse,Eclipse的src目錄下的xml等資源文件在編譯的時候會自動打包進輸出到classes文件夾。java
示例:spring
當在IDEA中使用MyBatis時,通常會建立一個SQL映射的配置文件,這個文件若是是在src/main/java目錄下,編譯後在target目錄下是找不到這個文件的sql
對於IDEA的這個問題,有以下的解決辦法:springboot
第一種方法:若是沒有特殊業務,不須要指定資源文件定位到src/main/java下,則能夠在src下建立main/resources目錄,並將所須要的xml資源文件放置其中便可。maven工具默認在編譯的時候,會將resources文件夾中的資源文件一塊打包進classes目錄中。mybatis
對於MyBatis的這種使用方式,咱們必須在配置文件中指定mapper.xml文件的位置,例如在springboot項目中,在application.properties中增長:app
mybatis.mapper-locations=classpath:mapper/*.xml
若是是普通的ssm項目,則這樣配置:maven
<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文件中找到<build>節點,添加下列代碼:工具
其中<directory>src/main/java</directory>代表資源文件的路徑,<include>**/*.xml</include>代表須要編譯打包的文件類型是xml文件,若是有其它資源文件也須要打包,能夠修改或添加通配符。ui
<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>