1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > SpringBoot日记本系统 :关键字搜索BUG(Mybatisplus and和or的问题)

SpringBoot日记本系统 :关键字搜索BUG(Mybatisplus and和or的问题)

时间:2021-02-09 22:04:08

相关推荐

SpringBoot日记本系统 :关键字搜索BUG(Mybatisplus and和or的问题)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

SpringBoot日记本系统 :关键字搜索BUG(Mybatisplus ad和or的问题)

目录

BUG登记

问题复现

原因

问题代码

解决方案

BUG登记

描述:关键字搜索会搜到别人写的文章标题,包括删除的文章

严重程度:严重

紧急程度:紧急

问题复现

随便在搜索栏搜索一个,会出现所有标题含有的文章,包括他人的文章和被删除的文章。

不过,如果点进去的话还是看不到的,因为搜索文章的时候加了校验。

原因

日志搜索代码写法问题。

问题代码

这边代码直接加了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)

完美解决。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。