当前位置: 首页 > news >正文

mybatis中的极易出现错误用法

1.背景

今天下午开会的时候,领导分配了一个任务说需要去完成一个商品录入的功能,可以通过模糊查询去识别物品,当时听到这个之后就觉得好简单,索性就交给手底下的实习生去做,刚好可以让他去练练手吧,想着能来实习的实习生毕竟还是有一定的水平的,不然也不会说到这实习,于是信心满满的交给他了。

2.交互过程

跟他讲完需求点之后,给了他两个小时的时间去完成这个接口的实现,他也信心满满的跟我讲,用不了两个小时,一个小时足以,于是我就去忙我手头的任务去了,他就在那敲代码。

3.交付过程

眼看马上要三个小时了,我问他怎么还没有提交呢,是不是有什么卡点,然后他就跟我说,感觉自己的逻辑没有问题啊,就是简单的crud,没什么难度啊,为什么收不到信息呢,举个例子,我输入电脑,就会给出,戴尔电脑,苹果电脑,联想电脑,等等,结果他写的这个,输进去之后没反应,于是我就让他把现有的代码git上去,我帮他看一下,看了对应的业务语句,除了可能存在空指针的异常外,其他的代码业务也还正常,于是就在xml里面看,果然映入眼帘的语句

<select id="queryByName" resultType="Product">select * from product where name like '%#(name)%'
</select>

我就知道问题的所在了,给你们打印一下sql的日志让你们看一下,就明白了,看着这样写没毛病啊为什么出不来呢

select * from product where name like '%?%'

不是大哥,这模糊查询也不能这么模糊吧,于是我又问了他一遍知道问题所在吗,他当时给我的解释是,会不会是自己前面传参的时候,传的对象不对,导致没有获取到真正的name,大哥,你好歹来实习了,这个问题要是还能翻车,那不是要被劝返,然后我就让他去日志看报错,才恍然大明白。

4.解决方案

不说你们应该也知道了吧,加一个concat这个问题就解决了

<select id="queryByname" resultType="Product">select * from product where name like concat ('%',#{name},'%')
</select>

看着是一个小问题,但是有的时候就是会眼高手低。 

http://www.dtcms.com/a/305551.html

相关文章:

  • OpenBayes 一周速览丨Self Forcing 实现亚秒级延迟实时流视频生成;边缘AI新秀,LFM2-1.2B采用创新性架构超越传统模型
  • cgroups测试cpu bug
  • 离线录像文件视频AI分析解决方案
  • Camera相机人脸识别系列专题分析之十九:MTK ISP6S平台FDNode传递三方FFD到APP流程解析
  • MSPM0开发学习笔记:二维云台画图(2025电赛 附源代码及引脚配置)
  • RHCA学习概述
  • 【音视频】WebRTC-Web 音视频采集与播放
  • Reflect从入门到实战
  • Java面试宝典:MySQL中的系统库
  • vue npm install卡住没反应
  • Three.js 与 React:使用 react-three-fiber 构建声明式 3D 项目
  • 深度学习(鱼书)day06--神经网络的学习(后两节)
  • Apple基础(Xcode①-项目结构解析)
  • Java 笔记 default 使用场景
  • Python 程序设计讲义(44):组合数据类型——集合类型:创建集合
  • 从0到1学PHP(七):PHP 与 HTML 表单:实现数据交互
  • HTML第一次作业
  • html的onBlur
  • VUE -- 基础知识讲解(三)
  • 鹏哥C语言_82_指针_指针数组
  • 简单线性回归模型原理推导(最小二乘法)和案例解析
  • Linux C:位运算符
  • 【前端】span和div都设置了text-align,为什么对span不起作用
  • python基础语法1,python语法元素(简单易上手的python语法教学)(课后习题)
  • 操作系统- lecture3(进程的定义)
  • LVS (Linux Virtual Server) 解析
  • 微服务消息队列之——RabbitMQ
  • 2019 年 NOI 最后一题题解
  • 智能AI医疗物资/耗材管理系统升级改造方案分析
  • Python自动化测试环境搭建