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

Mybatis的#{}和${}

#{}:预编译语句,用?对参数位置进行一个占位的操作,在数据库生成一个模版,等待后续填充.也可以推测出#在生成模版后的性能是比$快的.

${}:即时语句,提前的吧参数填充进去,在MySQL里就是一个完整的SQL语句.

填充逻辑不同
#{}会给String类型的参数自动的加上双引号,而${}则是直接填充.单着也给#带来了一些麻烦.比如在order by 的时候 的顺序desc和asc都是字符串,却不能加双引号,模糊查询的时候涉及到许多关键字的选择也是字符串这个时候也很麻烦.所以要选择性的用.

安全性

为什么说#比$安全呢,$相当于自己写一个SQL语句,而#则是MySQL给你一个模版,我们负责填值.值再花里胡哨那也和表的结构没啥关系.

相关文章:

  • 自适应SQL计划管理(Adaptive SQL Plan Management)在Oracle 12c中的应用
  • AD(Altium Designer)三种方法导入图片
  • 动态内存分配算法对比:最先适应、最优适应、最坏适应与邻近适应
  • 论文笔记-WSDM2025-ColdLLM
  • Hadoop-HA(高可用)机制
  • 重写QListWidget/QListView的代理,以网格的形式展示Item
  • jvm中各个参数的理解
  • Ubuntu编译ZLMediaKit
  • react实例与总结(二)
  • ollama修改监听ip: 0.0.0.0
  • deepseek清华大学第二版 如何获取 DeepSeek如何赋能职场应用 PDF文档 电子档(附下载)
  • 计算机网络基础杂谈(局域网、ip、子网掩码、网关、DNS)
  • 分布式 IO 模块:水力发电设备高效控制的关键
  • 正则表达式特殊字符
  • Nginx 常用命令和部署详解及案例示范
  • arthas教程(还没有全部写完,有空更新)
  • QT事件循环
  • 【Spring详解五】bean的加载
  • Debian软件包重构
  • 第三章:Transformer模型探索
  • 南京106亿元成交19宗涉宅地块:建邺区地块楼面单价重回4.5万元
  • 关于新冠疫情防控与病毒溯源的中方行动和立场
  • 外媒称菲方允许菲官员窜台,国台办:应停止在台湾问题上玩火
  • 东风着陆场做好各项搜救准备,迎接神舟十九号航天员天外归来
  • 160名老人报旅行团被扔服务区?张家界官方通报
  • 临港迎来鸿蒙智行“尚界”整车及电池配套项目,首款车型今秋上市