美文网首页
Mybatis中#{}与${}的区别

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

作者: Java编程日记 | 来源:发表于2022-04-08 16:53 被阅读0次

1.#{}
1.MyBatis会把这个表达式使用?(占位符)替换,作为一个sql参数使用:推荐使用。比如:

定义SQL: SELECT * FROM user WHERE id = #{id}

最终SQL: SELECT * FROM user WHERE id = ?

2.使用#{}时,变量替换时会在对应的变量自动加上' ';

3.#{}可以防止sql注入;

2.${}
1.MyBatis会把这个表达式的值替换到sql中,作为sql的组成部分。把获取到值直接拼接到SQL中;

2.使用${}时,变量替换时不会在对应的变量加上' ';

3.${}可能会出现sql注入

3.{}表达式的应用场景 1.使用order by 时,必须使用{};

2.表名作为参数时,必须使用${},原因是#,如果是字符串,会自动加上单引号;

列如:SELECT * FROM 'user'

注意:一般能用 #{} 的地方尽量使用 #{} ,减少使用 ${} ,预防 SQL 注入;

相关文章

  • Q&A-06 Mybatis

    Mybatis中#{}与${}的区别 #{}1、#{} 是 sql 的参数占位符,Mybatis 会将 sql 中...

  • MyBatis学习笔记

    Mybatis架构图 图中可能有错误,欢迎评论指正。 1.# Mybatis 中$与#的区别 Mybatis中#是...

  • mybatis中#与$的区别

    mybatis中#与$的区别 MyBatis中使用parameterType向SQL语句传参,parameterT...

  • MyBatis中#与$的区别

    在mybatis的映射配置文件中经常可以看到#与$符号,这两种符号都是用于传递参数,那么它们之间的区别是什么呢? ...

  • MyBatis 中 # 与 $ 的区别

    刚开始用 MyBatis 时,就发现有的地方用 #,有的地方用 $,但一直都没在意,直到程序出 Bug 了,才去了...

  • Mybatis中#{}与${}的区别

    1.#{}1.MyBatis会把这个表达式使用?(占位符)替换,作为一个sql参数使用:推荐使用。比如: 定义SQ...

  • Mybatis

    mybatis 与 hibernate 区别 : mybatis 相比于hibernate 需要关心很多细节 ...

  • Mybatis配置中#{}与${}的区别

    **#{} ** (1)防止sql注入。使用#{}意味着使用的预编译的语句,即在使用jdbc时的preparedS...

  • mybatis中#{}与¥{}的区别

    简单来说#{} 解析的是占位符?可以防止SQL注入, 比如打印出来的语句 select *from table w...

  • mybatis中#与$的使用区别

    关键词,预编译,防sql注入,动态sql 我们在使用mybatis中编写sql语句的时候,经常会使用#或者$来取值...

网友评论

      本文标题:Mybatis中#{}与${}的区别

      本文链接:https://www.haomeiwen.com/subject/rtipsrtx.html