Mybatis中的${}和#{}有什么区别

发布时间:2020-07-22 13:44:36 作者:小猪
来源:亿速云 阅读:151

小编这次要给大家分享的是Mybatis中的${}和#{}有什么区别,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

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语句

举个activiti工作流的例子:

select * from${prefix}ACT_HI_PROCINST where PROC_INST_ID_ =#{processInstanceId}

看完这篇关于Mybatis中的${}和#{}有什么区别的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。

推荐阅读:
  1. mybatis统计每条SQL的执行时间的方法示例
  2. Mybatis中的动态SQL语句解析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mybatis

上一篇:如何解决移动硬盘常见故障

下一篇:php如何实现统计IP数及在线人数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》