Mybatis中${}和#{}的区别

本文详细介绍了Mybatis中${}和#{}的作用,它们的区别在于${}是在编译前替换,不处理SQL注入,而#{}在SQL编译后替换并自动进行SQL注入防护。#{}适合用于查询条件的值注入,${}适用于字段或表名的动态注入,但需注意SQL注入风险。
摘要由CSDN通过智能技术生成

 

${}和#{}的作用

Mybatis在项目中起到的是项目和数据库的交互以及sql语句的管理,sql语句的集中管理,方便开发人员对sql语句的复用和管理,但是既然需要复用,就表明sql语句本身是进过抽象的,抽象的目标就是参数,在不同的用途就需要传入不同的参数${}和#{}就是用来向已经定义好的sql语句传入参数的。

${}和#{}的区别

#{} 这种取值是变异号sql语句之后再取值,添加的值有' '包裹

${} 这种取值是取值之后再去编译sql语句,添加的值没有' '包裹

#{}的使用案例

<select id = "selectUser" parameterType="String" resultType="com.mybatis.po.MyUser">
    select * from user where account = #{account} and password = #{password}
</select>

上述sql语句经过编译之后的结果是

select * from user where account = '122221122' and password = '1515131811515'

${}的使用案例


                
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值