美文网首页
2023.03.16 Mybatis中 $ 与 # 的区别是什么

2023.03.16 Mybatis中 $ 与 # 的区别是什么

作者: 薛定谔的猴子 | 来源:发表于2023-03-15 23:13 被阅读0次

mybatis中$和#的区别是:

  • #{}是将传入的值当做字符串的形式,会自动给其添加引号,例如:id = #{id},如果id的值是1,则SQL解析为:id = '1'

  • ${}是将传入的值直接拼接到SQL语句中,不会添加引号,例如:id = ${id},如果id的值是1,则SQL解析为:id = 1

  • #{}可以防止SQL注入攻击,因为它会先用占位符代替参数进行预编译,然后再将参数中的内容替换进来。${}则不能防止SQL注入攻击,因为它会直接将参数和SQL语句拼接形成完整的命令后再进行编译。

  • ${}适用于表示字段名、表名等需要直接拼接到SQL语句中的情况,例如:order by ${columnName}#{}则不适用于这种情况,因为它会给字段名、表名加上引号导致错误。

相关文章

  • Mybatis常见面试题

    Mybatis常见面试题 #{}和${}的区别是什么? #{}和${}的区别是什么? 在Mybatis中,有两种占...

  • Q&A-06 Mybatis

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

  • 2021-01-31今日主题: MyBatis

    今日主题: MyBatis MyBatis 中 #{}和 ${}的区别是什么? #{}是预编译处理,${}是字符替...

  • MyBatis学习笔记

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

  • 【5分钟背八股】mybatis中#{}和${}的区别?

    mybatis中#{}和${}的区别是什么? a、#{}是预编译处理,${}是字符串替换。 b、Mybatis 在...

  • mybatis中#与$的区别

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

  • Mybatis,hibernate相关

    Mybatis相关 1.Mybatis是什么? 2.为什么选择Mybatis? 3、#{}和${}的区别是什么? ...

  • Mybatis.hibernate相关

    Mybatis相关 1.Mybatis是什么? 2.为什么选择Mybatis? 3、#{}和${}的区别是什么? ...

  • 13Mybatis

    1.mybatis 中 #{}和 ${}的区别是什么? {}是预编译处理,${}是字符串替换; Mybatis在处...

  • MyBatis中#与$的区别

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

网友评论

      本文标题:2023.03.16 Mybatis中 $ 与 # 的区别是什么

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