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>
  • 相关阅读:
    php apc
    nginx https
    js弹出确认框,挺全
    websocket nodejs
    nodejs express测试
    【C++】Mandelbrot集绘制(生成ppm文件)
    【Scheme】Huffman树
    【Scheme】符号求导
    【Scheme】树结构
    【Scheme】序列的操作
  • 原文地址:https://www.cnblogs.com/a8457013/p/7825412.html
Copyright © 2011-2022 走看看