zoukankan      html  css  js  c++  java
  • mybatis获取参数数值的两个方式

    ${ }: insert into emp values(null,admin,23,男)
    Statement:必须使用字符串拼接的方式操作sql,一定要注意单引号,例:'${}'

    #{}:insert into emp values(null,?,?,?)
    PreparedStatement:可以使用通配符操作sql,因为在为string赋值时,可以自动加单引号,因此不需要注意单引号

    建议:建议使用#{},在特殊情况下,需要使用${},例如模糊查询批量删除

    不同的参数类型,${}和#{}的不同取值方式:

    1、当传输参数为单个String或基本类型和其包装类

    #{}:可以以任意的名字获取参数
    ${}:只能以${value} 和 ${_parameter}获取
    

    2、当传输参数为Javabean时

    #{}和${}都可以通过属性名直接获取属性值,但是要注意${}的单引号问题
    

    3、当传输多个参数时,mybatis会默认将这些参数放在map集合中

    两种方式:

    (1)键为0,1,2,3...N-1,以参数为值

    (2)键为param1,param2,param3....paramN,以参数为值

    #{}:#{0},#{1};或#{param1},#{param2}
    ${}:${param1},${param2}; 但是要注意${}的单引号问题
    

    4、当传输Map参数时

    #{}和${}都可以通过键的名字直接获取,但是要注意${}的单引号问题
    

    5、命名参数

    可以通过@Param("key")为map集合指定键的名字

    Emp getEmpByEidAndEnameByParam(@Param("eid")String eid, @Param("ename")String ename);
    键是eid,值是eid....
    

    6、当传输参数为List或Array,mybatis会将List或Array放在map中,

    List以 'list' 为键,Array以 'array' 为键,除非自己重新命名键名

  • 相关阅读:
    预览graph取消item的value单位自动转换
    Elasticsearch内存分配设置详解
    Linux core 文件介绍
    案例一 整套项目打包部署
    Linux删除文件提示Operation not permitted的处理办法
    python优雅获取本机 IP 方法
    nginx open files limits 导致大量错误信息
    excel表格用协程插入到mysql
    mysql基本操作
    装饰器
  • 原文地址:https://www.cnblogs.com/2328322824chx/p/13602003.html
Copyright © 2011-2022 走看看