文章目录
- 前言
- 一、方案一${index}替换#{index}
- 二、方案二#{index,jdbcType=NVARCAHR}替换#{index}
- 这样替换之后,也变快了,也能防sql注入。
- 总结
前言
最近项目组压力测试发现一个BUG,某个分页查询sql在数据量变大之后,在数据库执行正常,在mybatis执行很慢。
一、方案一${index}替换#{index}
代码如下(示例):
#{参数} 换成 '${参数}'
这样替换之后,确实变快了,但是${}的写法不能防sql注入。
二、方案二#{index,jdbcType=NVARCAHR}替换#{index}
代码如下(示例):
#{参数} 换成 #{参数,jdbcType=NVARCAHR}
这样替换之后,也变快了,也能防sql注入。
总结
以上就是本次BUG的解决过程,原因猜测可能是数据量增长后,执行sql需要花费更多时间确定参数类型,后续有发现再更新。