热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

MyBatis获取参数值

MyBatis获取参数值的两种方式:${}和#{}${}的本质是字符串,#{}的本质是占位符赋值${}使用字符串拼接的方式拼接sql,若为

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定义好的键

测试方法



推荐阅读
  • Bootstrap 插件使用指南
    本文详细介绍了如何在 Web 前端开发中使用 Bootstrap 插件,包括自动触发插件的方法、插件的引用方式以及具体的实例。 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • 本文将详细介绍如何在Android Studio中导入和编译OSChina Android 2.4版本的源码。包括所需软件、下载地址以及一些注意事项。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 本文介绍了Java编程语言的基础知识,包括其历史背景、主要特性以及如何安装和配置JDK。此外,还详细讲解了如何编写和运行第一个Java程序,并简要介绍了Eclipse集成开发环境的安装和使用。 ... [详细]
  • iOS 不定参数 详解 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 使用Java开发简易文本编辑器
    作为一名初学者,虽然之前有使用VB.NET和C#开发文本编辑器的经验,但在尝试用Java实现相同功能时,感觉Java的图形界面组件不如微软的产品(如C#和VB.NET)那么友好。本文将分享我在Java中开发简易文本编辑器的过程,并探讨Java在图形界面方面的优缺点。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
author-avatar
万幼南
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有