前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站
SpringBoot日记本系统 :关键字搜索BUG(Mybatisplus ad和or的问题)
目录
BUG登记
描述:关键字搜索会搜到别人写的文章标题,包括删除的文章
严重程度:严重
紧急程度:紧急
问题复现
随便在搜索栏搜索一个2022,会出现所有标题含有2022的文章,包括他人的文章和被删除的文章。
不过,如果点进去的话还是看不到的,因为搜索文章的时候加了校验。
原因
日志搜索代码写法问题。
问题代码
这边代码直接加了or,得到的sql是这样的:
==> Preparing: SELECT id,title,user_id,blog_type,content,is_delete,create_date,update_date FROM tbl_syn_blog WHERE (user_id = ? AND is_delete = ? AND title LIKE ? OR content LIKE ?) ORDER BY update_date DESC LIMIT ?
==> Parameters: 0(String), 0(String), %20%(String), %20%(String), 10(Long)
问题就处在这里
WHERE (user_id = ? AND is_delete = ? AND title LIKE ? OR content LIKE ?)
应该是
WHERE (user_id = ? AND is_delete = ? AND (title LIKE ? OR content LIKE ?) )
解决方案
正确的写法应该是:
queryWrapper.and(qw -> {
qw.like("title",blog.getKws() )
.or().like("content",blog.getKws());
});
结果:
==> Preparing: SELECT id,title,user_id,blog_type,content,is_delete,create_date,update_date FROM tbl_syn_blog WHERE (user_id = ? AND is_delete = ? AND (title LIKE ? OR content LIKE ?)) ORDER BY update_date DESC LIMIT ?
==> Parameters: 0(String), 0(String), %20%(String), %20%(String), 10(Long)
完美解决。
标签:
bug
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)