范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

一个馒头引发的血案记BindingException的产生及解决过程

  一. 业务场景
  前几天壹哥带学生做一个项目,需要更新数据库中的车辆信息表,具体需求是要根据指定车辆的设备id(编号和设备ID均非主键)来更新车辆信息。壹哥要求学生们用Mybatis进行实现,所以就在对应的Mapper.xml文件中自定义SQL语句。结果有个学生在调用对应接口时爆出了一个BindingException异常,一下子就造成了整个模块崩溃,但他不知道这个异常该怎么解决,于是就慌慌张张地跑来问壹哥。其实我们在学习的时候,很多初学者都会遇到一些奇葩的问题而不知道怎么解决。
  那么接下来,壹哥就以Mybatis中的这个常见异常为例,来带大家分析开发时出现异常之后该如何快速定位及解决问题,这样以后再遇到类似问题时,大家就知道该怎么解决了。
  壹哥 提醒,不要让同一个问题困扰你两次哦! 二. 异常信息
  我们先来看看这个异常是什么。org.apache.ibatis.binding.BindingException nested exception is org.apache.ibatis.binding.BindingException:Parameter "carNo" not found. Available parameters are [cardNo, devId, param1, param2]
  很多同学在初次使用Mybatis时,其实很容易会遇到上面的这个异常。遇到了问题不可怕,我们想办法解决就是了。但有些同学一看到密密麻麻的英文单词,几乎一个都不认识,脑袋嗡一下子就炸了,到底哪里出错了,出了什么错,啥也不知道,反正就知道自己的代码报错了,剩下就不知所措了。
  壹哥在这里告诉大家,遇到问题千万不要紧张。如果你的单词量不行,可以使用有道翻译对照查看错误意思,然后慢慢积累这些单词就记住了。其实Java里的常用单词就那么几个,天天看就知道是啥意思了,我们开发时其实也不需要你背写单词。
  上面的异常信息,咱们根据字面意思来理解就是产生了一个绑定异常,而后面的详细描述是说参数 carNo找不到.......既然已经知道了这个错误,那就继续往下看具体的分析过程吧! 三. Mybatis使用须知
  在解决异常之前,壹哥先来带各位复习一下Mybatis的使用须知:1). 首先定义的接口方法名要和XxxMapper.xml文件中的id保持一致; 2). 建议接口名和mapper映射文件名称一致; 3). mapper映射文件中的namesapce必须是接口的全限定名称; 4). 建议接口文件和mapper映射文件的目录结构一致; 5). 接口中如果用了参数绑定@Param,需要查看映射文件的占位符内容是否和它一致。四. 原因排查
  复习了上面的Mybatis使用须知之后,你现在是否已经知道上面的异常是怎么产生的了?其实控制台里的异常信息已经把原因说得很清楚了:Parameter "carNO" not found. Available parameters are [carNo, devId, param1, param2] ,
  这里表示没找有到占位符表示的参数 #{carNO},能用的参数有carNo、devId等,这里明显就是发生了拼写错误。我们仔细检查核对一下发生异常之前,MyBatis中的XML文件内容:      update car set devId = #{devId} where car_no = #{carNO} 
  我们发现,原始的XML映射文件里面#{carNO}占位符使用的carNO,即NO都是大写字母!!!然后我们再来看看对应的Mapper接口代码:int updateDevIdByCarNo(@Param("devId") String devId,@Param("carNo")String carNo);
  注意看,这里参数绑定里面No的o是小写字幕,就是这样一个很小的细节,因为学生的粗心大意导致了上面的绑定错误!
  也就是说,上面的异常是由一个字母的大小写不匹配而引发的!无语!是不是太不应该出现这种错误了呢?其实很多人在学习编程时所犯的错误,绝大多数都是因为马虎造成的! 五. 解决办法
  其实解决办法很简单,只需要将XML文件中的参数名和Mapper接口里的参数名保持一致即可!比如两者都改成carNO!六. 总结与反思
  本案例中的异常,是因为一个字母的大小写不匹配而导致的错误,这不仅仅引发了BindingException异常,同时还暴露了我们学习时存在的极大缺点:1). 代码命名不规范,Id还是ID,No还是NO,在项目中要保持统一的风格; 2). 合理CV:为了减少XML文件中出现不必要的错误,可以直接从已有的SQL语句中把参数粘贴过来(NO); 3). 一定要注意接口与XML文件之间的拼写一致性!
  本案例中的异常真可以说是"一个馒头引发的血案",一个小小的拼写错误也可以引发大故障,所以大家在开发时一定要仔细哦!
  现在你知道异常该怎么解决了吗?如果还有什么问题,可以在评论区给壹哥留言哦。

水滴崔晨开放核心能力赋能保险行业全链条近日,2021分子乌镇保险科技节开幕。据了解,水滴公司旗下水滴保险经纪入选本届2021中国保险科技100强名单。水滴保险经纪总经理助理水滴开放平台负责人崔晨受邀参会并发表主旨演讲。Facebook改名Meta,何以掀起一场网络狂欢?推荐10月28日,FacebookCEO扎克伯格在公司一年一度的虚拟现实大会ConnectConference上宣布,Facebook公司的新名字将是Meta。我们是一家建立技术连接的2。5万亿美元市值击败苹果,世界第一的微软,靠啥成为股王?文谛林审核子扬校正知秋市值往往被用来衡量一家上市公司的规模体量运营状况或者发展前景,所以绝大多数上市企业都会希望股价持续飘红。这一方面有利于企业发展,另一方面则有利于企业收益股东分奇葩准上市公司竟是博彩网站借钱给实控人买别墅通过分红帮他还钱这年头,招股书错误频出,已经见怪不怪了,可你见过把自家官网都弄错的吗?创业板准上市公司苹果与华为间接供应商万祥科技(301180。SZ)就是这样一家奇葩公司,三大行情软件指向的公司新闻11丨国家科技奖,奖的究竟是什么?11月3日,2020年国家科学技术奖揭晓并且颁奖,让我们又认识了一批在科研领域作出突出贡献的科学家以及他们的团队。今年的科学技术奖有什么特点?为什么国家要在自然科学方面要加大投入?从原材料到成衣实现一键打印浙江新闻客户端记者纪驭亚通讯员石丛珊胡旭东在人民大会堂门口熟悉针织制衣流程的人都知道,从丝线经面料再到成衣,要经过编织裁剪缝合等多道串联工序。但浙江理工大学胡旭东教授团队历时十余年加拿大科技如此发达,为什么没发现有像华为科技含量高的公司呢?首先一个公司的体量大小,并不就意为着含有多大多高的科技含量,中国的银行,烟草公司,茅台酒公司等体量很大吧,有多少含量的高科技?首先要搞清楚科技研发公司,和科技商业公司的区别,科技研三星官翻机的来源与购买渠道在,各大厂商品牌都推出了官翻机。那官方翻新的机器到底怎么样?官翻机的来源又是什么?购买渠道有哪些?今天我们就以三星的官翻机为例,来详细了解一下。现在,各大厂商品牌都推出了官翻机。那社交软件有哪些,哪个最好玩?简单说一下吧,我本人也算是个过来人首先强烈不推荐陌陌,好家伙在里面被坑了近一百(你永远摸不清骗子的套路)么么恋个人感觉挺好的,我现在对象也是在上面找的,关键是不容易被骗钱(划重点)选红不选绿?酷派最新海报意味深长,网友脑补了几场宫斗大剧选红不选绿?酷派这波创意海报感觉有点东西。近期,酷派大动作频频,不仅将Logo颜色变红,还连发几张带有选红不选绿相关文字的海报,引起机圈一阵猜测。关于酷派这几张选红不选绿的海报,网iPhone13换屏难度空前复杂苹果加入验证芯片决定面容ID生死对于有着极大用户群体的硬件厂商而言,售后同样是重要的利润来源,相对封闭的苹果,这一点更是成立。此前在iPhone13的抢先拆解中就有大神发现,将两部iPhone13的屏幕互换后出现
消防主机操作和火警处理方法一火警处理当发生火警时,首先应按消音键中止警报声。然后应根据控制器的报警信息检查发生火警的部位,并去现场确认是否有火灾发生。(一)若确认有火灾发生应根据火情采取相应措施。(1)启动2019消防知识点灭火基本原理与方法灭火的基本原理与方法1冷却灭火对于可燃固体,将其冷却在燃点以下对于可燃液体,将其冷却在闪点以下,燃烧反应就可能会中止。用水扑灭一般固体物质引起的火灾,主要是通过冷却作用来实现的,水618首战告捷不是每款都会成为溢价爆品,华为OPPO最值得一看随着公共卫生环境的改善,中国人民的消费力要再次释放,报复性的消费如期如愿地到来,在618年中大促上可谓展现的淋漓尽致。仅开场1小时,京品家电成交额便实现同比增长5倍,天猫商品订单量自动射流灭火装置(自动消防炮)应用误区及解决方案一小流量自动消防炮灭火装置(自动射流灭火装置),仅适应于小面积的中庭(或大堂)等民用建筑室内场所,设计流量可参照自动喷水灭火系统设计规范施行。室内应用的自动消防炮灭火装置(自动射流带你走进吉祥鲜商城随着互联网的发展,快捷便利优选成为了重中之重,而东三省农产品信息化程度低,大部分供应商依旧采取老式销售模式,无法满足农产品消费者的需求,所以针对现存问题,我们研发了农产品电商平台吉地方产业冷知识你get了吗?来京东一起寻宝前阵子有人总结了一份地方产业冷知识在网络上火了,几乎没什么名气的小镇,却在某个品类里满足了全国甚至全世界超过一半的制造需求。这些冷知识引发了众多网友的讨论,很多人还在评论里补充。近如何降低分拣损耗?随着我国经济的不断发展,人们对食物的需求已不足以填饱肚子,食物的质量已成为每个人都关心的问题。许多消费者开始厌倦点餐的生活,生活的压力让很多人觉得,回家做饭是一个减压的过程,自己喜上幼儿园前应该学习什么?这几点最适合,建议收藏同样的老师,同样的教材,为什么一年级的学生成绩会有差距?为什么别人家的小孩思维这么敏捷,想象力这么丰富?可能有爸妈认为是幼儿园的优劣导致的差异。其实不然,幼儿园的教育只占部分因素,消防知识点学习技巧(4)一扎实巩固的基础阶段对于2018一级消防工程师考试,基础阶段的学习可谓是重中之重,不论学习的时间有多么紧张,一定不能错过扎实基础的学习。那么如何展开基础阶段的学习呢?其实基础学习就消防知识点记忆技巧(1)消防考试的知识点内容繁杂,需要坚持每天复习,温故而知新,在学习新知识的同时,考生也要保证每天留出一定的时间来复习。以下是小编为大家整理的消防知识点记忆技巧,希望对大家有帮助。消防每消防知识点备考技巧(3)1首先必须清楚国家对于消防考试的整体形势和规划,了解消防工程师的市场需求,根据国家的相关权威数据做出明确的市场评估,你才会知道你考取的证书有多大价值2必须明确的知道自己的学习能力如