• Mybatis 小记


    1,mybatis 中 $ # 区别

    mybatis 动态传参的两种方式

    #{ }在动态解析的时候,会将#{ } 解析为一个预编译阶段的一个标记符号?,在预处理阶段才会替换

    ${ }在动态解析的时候,会将${ } 直接就会惊醒变量替换

    优先使用 #{}。因为 ${} 会导致 sql 注入的问题

    select * from ${tableName} where name = #{name}

    表名如果是:user; delete user; -- 

    动态解析的sql 就会变成:

    select * from user; delete user; -- where name = ?;

    这样sql 就注入进去了,但是表明只能用${ }

     #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号

     $将传入的数据直接显示生成在sql中

    $方式一般用于传入数据库对象,例如传入表名

  • 相关阅读:
    Co.
    编程
    编程
    编程
    数据同步
    Co.
    Co.
    Co.
    Co.
    sss
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11163245.html
Copyright © 2020-2023  润新知