先前用eclipse搭建了SSM框架,这次首次使用IDEA搭建,按照原来的步骤做,发现target下没有mapper.xml,并且访问网页时报错:Invalid bound statement (not found): cn.edu.ujn.ch17.dao.ThingMapper.selectById 即找不到mapper映射文件。
我的项目目录为:
如上图所示,因为mapper.xml在src\main\java下,而不是在resources下,导致target不能包含它们。
eclipse会自动把项目src\main\java\目录下的配置文件(.xml)和资源文件(.properties)搬运到target目录下,而IDEA默认是不会帮我们做这件事的。
因此,在porm.xml的< build>标签中加:
<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>
意思是把在src/main/java和src/main/resources目录下的xml文件(和properties文件)都包含进去。
然后选中项目,右击选择maven-reload project(重新加载项目),这样就成功了。