idea报错:Invalid bound statement (not found)

在配置MyBatis接口映射的Mapper.xml时,提示Invalid bound statement (not found)异常,就算是接口和xml名字相同,路径相同也无法找到,在网上找到了几种解方案。

  • idea默认不扫描src/main/java 下的xml文件,想要放在同一目录下,需要在pom.xml中配置扫描java目录下的xml即可,在build节点下添加:

      <resources>
          <resource>
              <directory>src/main/java</directory>
              <includes>
                  <include>**/*.xml</include>
              </includes>
          </resource>
          <resource>
              <directory>src/main/resources</directory>
          </resource>
      </resources>
    
  • 在resources目录下创建相同的包,运行不可以,需要在spring-mybatis.xml中配置mybatis扫描的地方(这一步不用也行。。):

      <mybatis:scan base-package="com.yl.note.mapper"></mybatis:scan>
    

    另外,在sqlSessionFactory的Bean中添加:

      <property name="mapperLocations" value="classpath*:com.yl.note.mapper/**/*.xml"/>
    

可用。

  • 在mybatis的配置文件中添加:

      <mappers>
    
          <!--扫描xml-->
          <mapper resource="com/yl/note/mapper/UserMapper.xml"/>
          <!--扫描接口-->
          <package name="com.yl.note.mapper"/>
    
      </mappers>
    

上述三种任选其一即可,其中第三种有待验证。


2017-11-13

在项目编译的时候发现无法引入properties文件,在resource中引入<include>**/*.properties</include>就行了。。。真是日了狗

		<build>
			<resources>
				<resource>
					<directory>src/main/java</directory>
					<includes>
						<include>**/*.xml</include>
					</includes>
				</resource>
				<resource>
					<directory>src/main/resources</directory>
					<includes>
						<include>**/*.xml</include>
						<include>**/*.properties</include>//加入此条目
					</includes>
				</resource>
			</resources>
		</build>
posted @ 2017-10-23 14:32  esileme  阅读(1130)  评论(0编辑  收藏  举报