[mybatis]——Invalid bound statement (not found):cn.heima.service.com.CustomerMapper.addCustomer

Exception in thread “main” org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.heima.service.com.CustomerMapper.addCustomer
at org.apache.ibatis.binding.MapperMethod S q l C o m m a n d . < i n i t > ( M a p p e r M e t h o d . j a v a : 223 ) a t o r g . a p a c h e . i b a t i s . b i n d i n g . M a p p e r M e t h o d . < i n i t > ( M a p p e r M e t h o d . j a v a : 48 ) a t o r g . a p a c h e . i b a t i s . b i n d i n g . M a p p e r P r o x y . c a c h e d M a p p e r M e t h o d ( M a p p e r P r o x y . j a v a : 59 ) a t o r g . a p a c h e . i b a t i s . b i n d i n g . M a p p e r P r o x y . i n v o k e ( M a p p e r P r o x y . j a v a : 52 ) a t c o m . s u n . p r o x y . SqlCommand.<init>(MapperMethod.java:223) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48) at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) at com.sun.proxy. SqlCommand.<init>(MapperMethod.java:223)atorg.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48)atorg.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59)atorg.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)atcom.sun.proxy.Proxy2.addCustomer(Unknown Source)
at cn.heima.Servlet.com.Test.test1(Test.java:32)
at cn.heima.Servlet.com.Test.main(Test.java:37)
出现这个问题的原因有以下几个
1.没有在Java工程里,建立相应的接口
2.中namespace没有填写正确的接口地址
3.接口名和映射xml配置文件名不一致
4.在映射文件里写sql语句时,id=“”,id 里面的值没有填写或者填写有误。
5.接口中没有相应的方法,在映射文件里写sql语句时,id=“”。却填写了相应的方法
例如:

insert into customer(name,password1,password2,customername,gender,email,birthday) values(#{name},#{password1},# {password2},#{customername},#{gender},#{email},#{birthday});

解决方案:在定义接口 和映射xml文件时候,先查看接口中有没有相应的方法,在检查接口名和映射xml配置文件名是否一致。
将二者一致后,即可解决问题。
如:接口定义名称:UserOperation.java
映射xml名称: UserOperation.xml

解释:
为什么需要保持接口名和映射文件xml名保持一致?
答:这里体现了一个编程思想,面向接口编程。
面向接口编程有两种常用的形式
1.接口<------->实现类(一一对应)
2.接口<------>配置文件(一一对应)
这里配置文件又分为两种。1. xml配置文件 2. properties配置文件
保持接口名和配置文件名保持一致,有利于读者清晰的知道这个配置文件就是这个接口的实现。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值