MybatisPlus常用操作

2021/9/28 MybatisPlus

# 官网地址 (opens new window)

https://mp.baomidou.com/guide/

# Wrapper中常用方法

image

# Mybatis存在的问题

  • MyBatis模糊查询能防止注入,但是不能防止通配符查询错误,如下
column_name like concat('%',#{parameter},'%')
# 如果parameter传值为'%'则语句解析如下:
column_name like '%%%'
# 查询结果就是全部,没有起到查询通配符的作用
1
2
3
4

解决方法就是使用instr(arg1, arg2)

column_name like concat('%',#{parameter},'%')
# 改为
instr(column_name, #{parameter}) > 0
1
2
3
  • instr() > 0 等于 like,instr() = 0 等于 not like (不考虑特殊字符)
  • instr是一个函数,可以建立函数索引,如果过滤的条件有索引,那么instr就可以提高性能。
  • like查询时,左侧以'%'开头,列所加的索引是不起作用的。
  • 在没有索引的前提下,当数据量比较大时,instr要比like效率高。
留言:
    更新日期: 2022/2/8 下午11:10:51