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

【mybatis的#和$使用和区别】

MyBatis是一种基于Java的持久层框架,用于将数据库操作和Java对象之间的映射进行处理。在MyBatis中,#和 $ 符号是用于SQL语句中的占位符。
在SQL语句中,#和 $ 符号都表示占位符,但它们的使用方式略有不同:

# 符号

#符号 在使用#符号时,MyBatis会将参数值直接替换到SQL语句中,并对参数值进行类型转换和字符转义处理。在执行SQL语句时,使用#符号可以有效防止SQL注入攻击。

例如,假设有一个名为username的参数,我们可以在SQL语句中使用#username#来表示占位符,如下所示:
SELECT * FROM users WHERE username = #{username}

$ 符号

在使用符号 在使用符号在使用符号时,MyBatis会将参数值直接替换到SQL语句中,但不会对参数值进行类型转换和字符转义处理。在执行SQL语句时,使用 $ 符号需要注意SQL注入攻击的风险。

例如,假设有一个名为orderBy的参数,我们可以在SQL语句中使用orderByorderByorderBy来表示占位符,如下所示:
SELECT * FROM users ORDER BY ${orderBy}

在使用符号时,需要注意一些风险,例如如果使用不当,可能会导致SQL注入攻击。因此,建议在使用符号时,需要注意一些风险,例如如果使用不当,可能会导致SQL注入攻击。因此,建议在使用符号时,需要注意一些风险,例如如果使用不当,可能会导致SQL注入攻击。因此,建议在使用符号时,对参数值进行严格的检查和过滤处理。

作者:lfsun666
链接:https://juejin.cn/post/7203536844919668773
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://www.lryc.cn/news/22964.html

相关文章:

  • 感知趋势,洞察发展:2023(第十届)趋势与预测大会成功举办
  • Spring-Aop核心技术
  • webpack常用优化原理剖析
  • 【现在努力还不晚】--MySQL数据库的数据模型
  • 二手商品交易网站
  • 第三阶段04-同步请求和异步请求,get/post,Josn,pojo,Session/Cookie,过滤器Filter
  • Spark学习:spark相似算子解析
  • MySQL操作数据表-----------创建数据表(一)
  • Java “框架 = 注解 + 反射 + 设计模式” 之 注解详解
  • 特斯拉4D雷达方案首次曝光!高阶智驾市场比拼安全冗余
  • Echarts 每个柱子一种渐变色的象形柱状图
  • 叠氮试剂79598-53-1,6-Azidohexanoic Acid,6-叠氮基己酸,末端羧酸可与伯胺基反应
  • Nginx网站服务——编译安装、基于授权和客户端访问控制
  • Spring Boot 版本升级2.2.11.RELEASE至2.7.4
  • OpenShift 4 - 使用辅助安装器安装单节点 OpenShift
  • Allegro如何快速锁定整板测试点操作指导
  • 系统分析师---知识产权标准化思维导图
  • HiEV洞察 | 特斯拉HW4.0再爆猛料,高精定位、雷达均有变动
  • 潜伏的 Linux Rootkit:Syslogk
  • JVM总结
  • AOF:redis宕机,如何避免数据丢失
  • LC-3—MIO、MMIO、Caller Save、Callee Save
  • SQL注入报错注入之floor()报错注入原理分析
  • 2023CS双非保研985经验分享(南大、华科、中科大科学岛、国防科大、西交、中南、深圳大学、北邮、中科院等)
  • Shell中的IFS
  • Java学习线路图--书籍推荐
  • 【GO】k8s 管理系统项目23[前端部分–工作负载-Pod]
  • rabbitmq在linux系统下安装步骤
  • 阿里测试员晒薪资条,看完真的扎心了...
  • 内网渗透辅助工具集Yasso