• 浅谈mybatis中#{}和${}的区别


    #{}:表示占位符,如果获取简单类型,#{}中可以使用value或其它名称。有效防止sql注入。使用#{}设置参数无需考虑参数的类型。

    如果使用#{}比较日期字段,select* from tablename where birthday >=#{birthday}

    ${}:表示sql拼接,如果获取简单类型,#{}中只能使用value 。无法防止sql注入。使用${}设置参数必须考虑参数的类型,比如:使用oracle查询条件是日期类型,如果使用${},必须人为将${}两边加单引号通过to_date转日期。

    Select * fromtable where birthday >=to_date(‘${birthday}’,’yyyy-MM-dd’)

     

    在没有特殊要求的情况下,建议使用#{}占位符

    有些情况必须使用${},

    比如:需要动态拼接表名,Select *from ${tablename}

    动态拼接排序字段:select *from tablename order by ${username} desc

  • 相关阅读:
    每日一题
    每日一题
    每日一题
    每日一题
    GitLab 部署
    Golang Web开发之Gin入门
    Golang消息队列之NSQ
    Golang操作Redis
    Golang操作MySQL
    Golang Json数据处理方法
  • 原文地址:https://www.cnblogs.com/chunguang-yao/p/10666444.html
Copyright © 2020-2023  润新知