前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis 中#与$的区别

mybatis 中#与$的区别

原创
作者头像
诺浅
修改2020-08-21 17:44:50
6890
修改2020-08-21 17:44:50
举报
文章被收录于专栏:工具使用工具使用
先看一个例子

例如对于如下sql

代码语言:txt
复制
select xxx t where t.name=#{name} order by ${name}

如果传入的值是张三,那么mybatis内部解析之后就会变成

代码语言:txt
复制
select xxx t where t.name='张三' order by 张三

如你所见,他们之间大概有以下几点区别

  1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。$将传入的数据直接显示生成在sql中。
  2. 因为第一点,所以#更适合传递参数,而$更适合传递数据库对象,如字段或者表名。
  3. 因为第一点,所以#方式能够很大程度防止sql注入,但$不能
  4. 所以 一般能用#的就别用$

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先看一个例子
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档