一 前言

1、项目采用maven进行编译打包 mybatis配置均完好,但出现配置文件未进入编译目录

2、本人不喜欢把mapper.xml单独放在resources,因为生成器生成xml文件指定位置,整整齐齐。看着舒服

报错信息如下

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.zyj.pluginstest.sys.dao.SysRoleDao.selectByExample

	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:227)
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:49)
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)
	at com.sun.proxy.$Proxy61.selectByExample(Unknown Source)
	at com.zyj.pluginstest.PluginsTestApplicationTests.contextLoads(PluginsTestApplicationTests.java:21)
	

二 问题分析

1、确认关键配置无误

(1)xml文件扫描路径

(2)dao接口扫描配置

2 确认编译后文件

发现缺少xml文件

 

上述归结与maven编译过程中会忽略非resources目录下的非java文件,
即不会将xml以及properties等文件打包进classes,所以需要手动在编译项目时加入。

三 解决方法

在pom.xml build标签内加入 resources配置,不过滤配置文件即可

  <build>
		<!--将mapper文件打包进去-->
		<resources>
			<resource>
                <!--指定根目录 到源文件夹 一般如下-->
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.properties</include>
					<include>**/*.xml</include>
				</includes>
				<filtering>false</filtering>
			</resource>
		</resources>
	</build>

重新编译,出现xml文件,运行正常 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐