• MyBatis--获取参数值


    MyBatis获取参数值的两种方式 : ${} 和 #{}

            ${}的本质是字符串 ,#{}的本质是占位符赋值

            ${}使用字符串拼接的方式拼接sql ,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号。

            #{}使用占位符赋值的方式拼接sql ,此时为字符串类型或日期类型的字段进行赋值时 ,可以自己添加单引号。

    1.若mapper接口方法的参数为单个的字面量类型,此时可以通过#{}和${}以任意的内容获取参数值,一定要注意${}的单引号问题 。

    2.若mapper接口方法的参数为多个的字面量类型,此时MyBatis会将参数放在map集合中,以两种方式存储数据 :

             a:以arg0,arg1...为键,以参数为值

             b:以param1,param2...为键,以参数为值

    因此,只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题。

    3.若mapper接口方法的参数为map集合类型的参数,只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题

    4.若mapper接口方法的参数为实体类类型的参数,只需要通过#{}和${}访问实体类中的属性名,就可以获取相对应的属性值.

    5.可以在mapper接口方法的参数上设置@Param注解,此时MyBatis会将这些参数放在map中.

    以两种方式进行存储

    • 以 @Param 注解的 value 属性值为键 , 以参数为值
    • 以param1,param2...为键 , 以参数为值

    1.单个字面量类型的参数

            若mapper接口方法的参数为单个的字面量类型,此时可以通过#{}和${}以任意的内容获取参数值,一定要注意${}的单引号问题。

    例:

    使用${ } ,需要用单引号括起来

    2.多个字面量类型的参数

    例 :

    如果不写 arg 或 paramt 会报异常

    异常 : 编译时映射文件异常 , 并提示可以使用的参数有 [arg1, arg0, param1, param2]

    3.map集合类型的参数

    接口

    测试类(自定义键)

    映射文件

    4.实体类类型的参数

    接口方法

    映射文件

    参数方法

    5.使用@Param标识参数

    接口

    映射文件

    可以直接使用@Param定义好的键

    测试方法

  • 相关阅读:
    【计算机网络】 基于TCP的简单通讯(服务端)
    一文搞懂pytorch hook机制
    【Spark】scala基础操作(持续更新)
    Webpack插件与Webpack之间的关系
    tensor补充
    【MySQL】MySQL中如何实现分页操作
    c++day2---9.7
    基于人工智能的智能化指挥决策和控制
    计算机组成原理学习笔记:进位计数制
    论文阅读——SqueezeSAM
  • 原文地址:https://blog.csdn.net/HG13542386794/article/details/127970484