浅谈#{}与${}区别

预编译为什么能一定程度上防止SQL注入

预编译和参数化查询将SQL查询语句和用户提供的输入值分开处理,从而防止SQL注入问题,预编译后SQL结构已经固定,可以防止非法输入参数对SQL结构的影响

#{}与${}区别

  • Mybatis在处理#{}时将其替换为?,然后调用PrepareStatement进行赋值,处理${}就是将其替换为变量的值。#{}可以有效防止SQL注入,${}可能出现SQL注入问题。
  • #{} 如果是字符串类型会将值附上引号然后替换之
  • ${} 直接将参数的值取出,直接拼接在SQL中
posted @   九段教会  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示