MybatisPlus常用操作
微冷 2021/9/28 MybatisPlus
# 官网地址 (opens new window)
https://mp.baomidou.com/guide/
# Wrapper中常用方法
# Mybatis存在的问题
- MyBatis模糊查询能防止注入,但是不能防止通配符查询错误,如下
column_name like concat('%',#{parameter},'%')
# 如果parameter传值为'%'则语句解析如下:
column_name like '%%%'
# 查询结果就是全部,没有起到查询通配符的作用
1
2
3
4
2
3
4
解决方法就是使用instr(arg1, arg2)
column_name like concat('%',#{parameter},'%')
# 改为
instr(column_name, #{parameter}) > 0
1
2
3
2
3
- instr() > 0 等于 like,instr() = 0 等于 not like (不考虑特殊字符)
- instr是一个函数,可以建立函数索引,如果过滤的条件有索引,那么instr就可以提高性能。
- like查询时,左侧以'%'开头,列所加的索引是不起作用的。
- 在没有索引的前提下,当数据量比较大时,instr要比like效率高。
留言: