zoukankan      html  css  js  c++  java
  • mybatis的#{}占位符和${}拼接符的区别

    #{}占位符:占位 
    如果传入的是基本类型,那么#{}中的变量名称可以随意写 
    如果传入的参数是pojo类型,那么#{}中的变量名称必须是pojo中的属性.属性.属性…

    ${}拼接符:字符串原样拼接 
    如果传入的是基本类型,那么${}中的变量名必须是value 
    如果传入的参数是pojo类型,那么${}中的变量名称必须是pojo中的属性.属性.属性… 
    注意:使用拼接符有可能造成sql注入

    <!-- 
    id:sql语句唯一标识 
    parameterType:指定传入参数类型 
    resultType:返回结果集类型 
    #{}占位符:起到占位作用,如果传入的是基本类型(string,long,double,int,boolean,float等),那么#{}中的变量名称可以随意写. 
    #{}:如果传入的是pojo类型,那么#{}中的变量名称必须是pojo中对应的属性.属性.属性..... 
    --> 

    <select id="findUserById" parameterType="int" resultType="cn.itheima.pojo.User"> 
    select * from user where id=#{id} 
    </select>
    <!-- 
    ${}拼接符:字符串原样拼接,如果传入的参数是基本类型(string,long,double,int,boolean,float等),那么${}中的变量名称必须是value
    ${}:如果传入的参数是pojo类型,那么`${}`中的变量名称必须是pojo中的属性.属性.属性...
    注意:拼接符有sql注入的风险,所以慎重使用
     -->
    <select id="findUserByUserName" parameterType="string" resultType="user">
        select * from user where username like '%${value}%'
    </select>
  • 相关阅读:
    D
    pat 甲级 1003 Emergency(最短路计数)
    Goldbach
    pta 1148 Werewolf
    CodeForces
    pta 1144 The Missing Number
    2020团体程序设计天梯赛 L1-3 洛希极限
    2020团体程序设计天梯赛 L1-2 猫是液体
    2020团体程序设计天梯赛 L1-1 嫑废话上代码
    2020年团体程序设计天梯赛-题解
  • 原文地址:https://www.cnblogs.com/a8457013/p/7825412.html
Copyright © 2011-2022 走看看