zoukankan      html  css  js  c++  java
  • mybatis中#{}与${}的区别

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

    #{}起到占位符的作用:

    如果传入的参数是基本类型(byte,short,int,float,double,char,boolean)以及其包装类和String,那么#{}中的变量可以随意起名。

    如果传入的参数是pojo类型,那么#{}中的参数必须是pojo中的属性.属性.属性...

    ${}起到拼接符的作用:

    如果传入的参数是基本类型(byte,short,int,float,double,char,boolean)以及其包装类和String,那么${}中的变量只能是value。

    如果传入的参数是pojo类型,那么${}中的参数和#{}中的一样,也必须是pojo中的属性.属性.属性...

    注意:使用${}拼接符存在sql注入风险,不建议使用,用法比较:

    <select id="findBlogLike" resultType="Blog">
      SELECT * FROM BLOG
      <if test="author != null and author.name != null">
        <!-- author_name like "%${author.name}%" -->

        author_name like "%"#{author.name} "%"
      </if>
    </select>

  • 相关阅读:
    Flink
    数据工程师
    数据库中间件
    数据仓库
    数据库
    设计模式
    机器学习
    Collections
    Concurrency
    Java
  • 原文地址:https://www.cnblogs.com/lzhl/p/6589948.html
Copyright © 2011-2022 走看看