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>
  • 相关阅读:
    小程序云函数 Error: errCode: -404011 cloud function execution error
    Fiddler+雷电模拟器进行APP抓包
    Vue优化常用技巧
    sftp常用命令整理
    React生命周期学习整理
    git 提交跳过检查
    漂亮的代码系列
    关于我系列
    架构系列
    深度学习系列
  • 原文地址:https://www.cnblogs.com/a8457013/p/7825412.html
Copyright © 2011-2022 走看看