配置文件出错 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
<!-- mybatis 配置--> <!--spring和mybatis完美结合,不需要mybatis配置映射文件--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!--mapperLocations:它表示我们的Mapper文件存放的位置, 当我们的Mapper文件跟对应的Mapper接口处于同一位置的时候可以不用指定该属性的值。 mapper文件就是xml文件--> <!--自动扫描mapper.xml文件--> <property name="mapperLocations"> <array> <value>classpath:mapper/country/*.xml</value> <value>classpath:mapper/order/*.xml</value> <value>classpath:mapper/product/*.xml</value> <value>classpath:mapper/user/*.xml</value> <value>classpath:mapper/BrandDao.xml</value> </array> </property> <!--这个可以实现上面一样的功能--> <!-- <property name="mapperLocations" value="classpath*:mapper/**/*.xml"/>--> <!--这个query 一定研究一下 用处好大啊!!--> <property name="typeAliasesPackage" value="cn.biye.core.bean,cn.biye.core.query"/> </bean> <!-- 扫包 --> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--下面这个value可以有两种写法:1,精确到各个包下面,多个包用逗号隔开。 2,不精确到每个包下面,就只写到各个包上面的包中,例如dao包下面还有包,则写到dao就行了--> <property name="basePackage" value="cn.biye.core.dao.user, cn.biye.core.dao.product,cn.biye.core.dao.order,cn.biye.core.dao.country"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean>
在这一点上面经常报错,可以肯定的是,把路径都详细指到位肯定是不会错的,但因为我赖得写全路径,所以就报莫名其妙的500,还写上一大堆参数未绑定,
无法注入bean也都是这个问题,,,最准确一点是报:在实现层找不到可以注入的dao can not autowire. No beans of 'FeatureDao" 其实也是它。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 关于maven构建spring+Mybatis工程运行错误: org.apache.ibatis.binding.BindingException: Invalidbound statement (not found): 在网上找了一些帖子和博文,发现可能是在打包时没有打包mapper.xml文件。最后到target下看,果然在对于的 package 下没有mapper.xml文件。 针对idea下没有打包 package 下的mapper.xml的解决方法: 在maven的pom.xml文件的<build>节点下告诉maven我们需要打包的文件: 最后可以在target下看看是否我们编写的mapper.xml文件被打包没有。 总结一下org.apache.ibatis.binding.BindingException: Invalidbound statement (not found):的大多数原因: 1 . 先检查自己的mapper.xml文档是否在Mybatis的配置文件中是否加载了。 2 . 查看mapper.xml文件中namespace的命名空间是否和接口的类的全名称相同 3 . 查看mapper.xml文件中sql语句的id名称是否和接口中的方法名称一致。 4 . Sql语句中的参数和返回类型和接口中的参数和返回值类型相同 5 . 最后查看生成的target中是否有对于的mapper.xml文件(如果上面都检查没有问题,那一般就是mapper.xml文件没有打包到target中)解决方法: |
大道三千,条条皆可证道。道心不可失。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现