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

mybatis模糊匹配采用concat与#{},动态sql讲解

字符拼接

在模糊匹配的时候,如果直接如此:

select *
from db01
where name like '%#{name}%';

会报错,因为#{}预编译的占位符问号不能出现在字符号里面,会被当成字符串。

改进:

select *
from db01
where name like '%' + ${name} + '%';

这样不会报错,但是直接拼接字符串的方式,有可能会被sql注入代码,使得数据库不安全。

所以最终可以采用concat拼接的方法,返回的是整个字符串:

select *
from db01
where name like concat('%',#{},'%');

动态sql

在面对多种条件的查询或者sql语句的时候,根据条件状态不同,可以响应不同的sql语句,这就需要在xml映射文件中采用,等语法标签。

http://www.dtcms.com/a/276429.html

相关文章:

  • 模拟专家协作网络——重塑LLM专业内容生成
  • C语言基础知识--枚举
  • 商业智能(BI)系统深度解析
  • Matlab R2024b下载及详细安装教程,附中文免费Matlab安装包(含离线帮助文档)
  • 为什么一个 @Transactional 注解就能开启事务?揭秘 Spring AOP 的底层魔法
  • 维基艺术图片: python + scrapy 爬取图片
  • 【读书笔记】《C++ Software Design》第一章《The Art of Software Design》
  • 典型的前后端交互数据示例
  • 消息认证码(message authentication code)MAC
  • 自动编码器:深度学习的特征提取与数据压缩利器
  • c++11——移动语义的举例说明
  • 数据结构与算法:逆元、除法同余和容斥原理
  • 指令微调时,也要考虑提示损失
  • Linux - 安全排查 3
  • 用 MATLAB 模拟传染病传播:从 SI 模型到 SIS 模型的可视化之旅
  • 【无标题】基于拓扑膨胀-收缩对偶性(TED),TED原理构建任意维度TQCD模型并推演宇宙可能性的完整方案:
  • 网络连接:拨号连接宽带PPPOE
  • 数据库索引创建与使用详细笔记
  • Linux的NetworkManager的nmcli配置网桥(bridge) 笔记250712
  • 【6.1.1 漫画分库分表】
  • 挖矿病毒判断与处理 - 入门
  • 26-计组-寻址方式
  • 暑假Python基础整理 -- 函数篇
  • 【6.1.2 漫画分布式事务技术选型】
  • 常用 pkill 命令速查表
  • CentOS 系统紧急恢复:从 lib64 目录崩溃到救援实战
  • vue3 canvas 选择器 Canvas 增加页面性能
  • 用FunctionCall实现文件解析(三):ChatOpenAI单例工厂
  • lnmp环境搭建
  • 使用Pycharm集成开发工具远程调试部署在虚拟机上的flask项目:超级详细的完整指南