Mybatis 的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${}

我们经常使用的是#{},一般解说是因为这种方式可以防止SQL注入,简单的说#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串,举个例子:

select * from student where student_name = #{name}

预编译后,会动态解析成一个参数标记符?:

select * from student where student_name = ?

而使用${}在动态解析时候,会传入参数字符串

select * from student where student_name = 'lyrics'

总结:

#{} 这种取值是编译好SQL语句再取值
${} 这种是取值以后再去编译SQL语句
  • #{}方式能够很大程度防止sql注入。
  • $方式无法防止Sql注入。
  • $方式一般用于传入数据库对象,例如传入表名.
  • 一般能用#的就别用$.
举个activiti工作流的例子:
select * from ${prefix} ACT_HI_PROCINST where PROC_INST_ID_ = #{processInstanceId}

Mybatis中的 ${} 和 #{}区别与用法相关推荐

  1. mybatis 中#与$的区别

    2019独角兽企业重金招聘Python工程师标准>>> MyBatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #u ...

  2. MyBatis中#{}和${}的区别

    ------------------------siwuxie095 MyBatis 中 #{} 和 ${} 的区别 1.在 MyBatis 的映射配置文件中,动态传递参数有两种方式: (1)#{} ...

  3. Mybatis 中$与#的区别

    1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当于 select i ...

  4. js中!和!!的区别及用法

    js中!和!!的区别及用法 js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值, 1.!可将变量转换成boolean类型,null.undefined和 ...

  5. mybatis中的#{}和${}区别,和使用场景

    mybatis中的#{}和${}区别 1.#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为ord ...

  6. mybatis中#与$的区别

    mybatis中#与$的区别 MyBatis中使用parameterType向SQL语句传参,parameterType支持的类型可以是基本类型int,String,HashMap和java自定义类型 ...

  7. 【MybBatis细节篇】MyBatis中#{}和${}的区别

    [MybBatis细节篇]MyBatis中#{}和${}的区别 #{} 和 ${} 的区别 #{} 和 ${} 的实例:假设传入参数为 1 #{} 和 ${} 的大括号中的值 单个参数的情形 #{} ...

  8. spring中@param和mybatis中@param使用区别

    spring中@param /*** 查询指定用户和企业关联有没有配置角色* @param businessId memberId* @return*/int selectRoleCount(@Par ...

  9. 从印度兵力分布聊聊Mybatis中#和$的区别

    文章目录 简介 举个例子 查询举例 #{id}的特点 ${id}的特点 总结 简介 大家在使用Mybatis的过程中可能都会自己去写SQL语句,并且需要向SQL语句传入参数. 但是在Mybatis中, ...

最新文章

  1. 几何基础之点在多边形内的判断
  2. hdu5909-Tree Cutting【FWT】
  3. leetcode 242. 有效的字母异位词
  4. VM虚拟机不能上网的问题解决
  5. 信息学奥赛一本通(1006:A+B问题)
  6. C++调用PyTorch模型:LibTorch
  7. c获取当前程序的路径_漏洞挖掘|使用AFL Fuzzing网络程序
  8. NASA 遭攻击,安全 Bug 仍未解决!
  9. java递归算法的实例最细讲解
  10. android soundpool 封装,Android 音效 SoundPool 封装类 停止音效播放
  11. 数的变幻(小明买书)
  12. QCC3040---AppDevice module
  13. 外贸员需要知道的那些事儿
  14. 既然选择了远方,便只顾风雨兼程
  15. 养生粥秘方,据说可以补气、泻火和去湿
  16. 医药之家:仿制药市场加速洗牌,多家药企陆续通过一致性评价
  17. 2022年软件测试行业的现状和前景?
  18. 计算机多媒体技术英语怎么说,计算机多媒体技术环境中的英语语言测试
  19. oracle clear buffer,Out 对象的 clearBuffer() 方法用来清除缓冲区里的数据,但并不把数据写到客户端。...
  20. 商品的SKU与SPU

热门文章

  1. js倒计时结束后播放音乐html5,js实现简单的倒计时
  2. Linux中关于samba的几个问题
  3. 对内对外烧钱,还顾自去门店化,独角兽爱屋吉屋终将归隐?
  4. Java switch版 减肥计划
  5. lc501.二叉搜索树中的众数【线索二叉树Morris遍历->lc538】
  6. 批量修改名称百度网盘在线处理之添加序号(四)
  7. python求模逆元
  8. 基于PHP+MySQL的学生成绩管理系统设计与实现 报告+项目源码及数据库文件+演示视频
  9. 2021-2027全球与中国大型多人线上角色扮演游戏市场现状及未来发展趋势
  10. wiki中文数据语料抽取-gensim构建word2vec模型