当前位置: 首页 > news >正文

Mybatis模糊查询

<select id="selectAllByNameAList" resultType="a">
    select * from a where name like '%${name}%';
</select>

但是有sql注入风险

下面是写法是错误的   #{xxx}会直接以字符串拼接  

实际sql就是select * from a where name like '%#{name}%'

<select id="selectAllByNameAList" resultType="a">
    select * from a where name like '%#{name}%';
</select>

用CONCAT函数

SELECT * FROM a WHERE name LIKE CONCAT('%', #{name}, '%')
 

  • #{} 是参数绑定,不是字符串替换;

  • 写在 '%#{name}%' 中,MyBatis 根本不解析

  • JDBC 实际拿到的 SQL 是没有问号 ? 的,所以你传了参数,它不知道往哪塞;

  • 所以报错:“没有参数位置,却传了参数”

相关文章:

  • 【C语言】字符串处理指南
  • 容器的CPU
  • T n、const T n、T const n
  • 1. hadoop 集群的常用命令
  • 工商业储能要关注的核心能力与未来发展方向
  • CMDB平台(进阶篇):3D机房大屏全景解析
  • CentOS7 安装 LLaMA-Factory
  • Spring Boot 定时任务的多种实现方式
  • SQLark:一款国产免费数据库开发和管理工具
  • SpringCloud快速认识
  • 进行性核上性麻痹护理指南,助患者安稳生活
  • 中国工厂出海新机遇:壹起航助力企业高效获客与品牌全球化
  • TypeScript 装饰器类型详解
  • Vulkan进阶系列1 - Vulkan应用程序结构(完整代码)
  • 使用PyTorch实现ResNet:从残差块到完整模型训练
  • Java项目之基于ssm的酒店客房管理系统(源码+文档)
  • AI 数字短视频数字人源码开发:开启虚拟内容创作新纪元​
  • 【UE5 C++课程系列笔记】33——商业化Json读写
  • 【2025年最新!软考中级】软件设计师考证知识点总结,串讲及真题合集
  • DeepSeek与ChatGPT的优势对比:选择合适的工具来提升工作效率