Mybatis传参parameterType方法汇总记录

news2024/11/29 1:47:34

这里分别记录使用过的七种传参方式:

1、在入参只有一个的情况下,Mapper.java中直接传即可

2、而在参数有两三个的情况下,Mapper.java中可以用@Param注解来指定入参

程序就知道哪个参对应拼接完SQL的哪个条件字段

 并且Mapper.xmlparameterType不用去指定,因为使用@Param注解后,MyBatis可以通过类型处理器(TypeHandler) 来推断出具体传入语句的参数

3、在单表查询时,一个实体类就可以满足所有查询条件入参

这是最简单省事的,Mapper.java中直接把实体类丢进去即可

 在Mapper.xmlparameterType直接指定为实体类,resultMap指定为实体类的Result即可

下面是对应实体类的Result

4、然后如果有了简单的表关联,一个实体类可能满足不了所有查询条件入参,可以建一个DTO什么的,继承于实体类,再设置特殊的参数

 在Mapper.xmlparameterType直接指定为VOresultMap指定为实体类的Result即可

5、在复杂的多表关联情况下,可以直接创建一个Model,然后把实体类、DTO、VO甩进去,提供get、set方法即可

因为在这种情况下,使用一个实体类为入参,属性是不够的,下面是Mapper.java

Mapper.xmlparameterType直接指定为ModelresultType指定为实体类即可

6、 如果在某些多表关联条件下,字段数量不多,但存在于多个实体类,就可以不用创建model,直接把参数塞到List<map>里面即可

下面是Mapper.java,入参和返回都是以List<map>的形式

Mapper.xmlparameterType就可以不指定了,resultType指定为map即可

= #{eid}                              (全匹配)
 like  '%${enterpriseName}%'           (模糊)

  在调用这个方法时,创建map,把值put进去即可

7、 另外,如果SQL遇到需要使用in的情况,这里也可以创建list存in的值,再把这个list作value塞到map里面即可 

别的地方都是一样,就是入参赋值时给map.put进去一个List就行了;

然后在Mapper.xmlparameterType依旧不指定,resultType还是为map;

注意这个里面collection的值是前面map.put时候的key值,不要混了

测试结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/987221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决eNSP和HCL Cloud兼容性的问题

问题&#xff1a;eNSP或HCL无法启动 不兼容的原因&#xff1a;eNSP支持Virtual Box是5.2.44&#xff1b;HCL支持的Virtual Box版本是6.0.14 解决方案&#xff1a;注册表欺骗 再进行重新安装前先把之前的都卸载掉&#xff1a;eNSP、VirtualBox、HCL等 1、先安装Virtual Box 5.…

JS中call(),apply()是什么,call(),apply()的原理是什么?如何手写一个call(),apply()?Symbol是什么,怎么用Symbol调优?含详细解析

&#x1f389;call() &#x1f495;call()的参数 thisArg&#xff1a;在调用 func 时要使用的 this 值 arg1, …, argN &#xff08;可选&#xff09; 函数的参数 ✨call()的描述&#xff1a; 首先声明 func是一个函数&#xff0c;person是一个对象 针对这段代码&#xff1a;f…

python中如何使用正则表达匹配\本身?(文末赠书)

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 将军向宠&#xff0c;性行淑均。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python钻石群【空】问了一个Python正则表达式的问题&#xff0c;一起…

CSS笔记(黑马程序员pink老师前端)定位

定位可以让盒子自由的在某个盒子内移动位置或者固定在屏幕中某个位置&#xff0c;并且可以压住其他盒子。 定位 定位模式 边偏移 定位模式说明static静态定位,按标准流特性摆放,没有边偏移,很少用relative相对定位,相对自身原有位置移动,原有位置继续占有&#xff08;不脱标…

《好笑的爱》阅读笔记

《好笑的爱》阅读笔记 是暑期认识的一位川大的同学推荐的&#xff0c;说他喜欢的一个作家是米兰昆德拉&#xff0c;喜欢他的短篇小说集《好笑的爱》。于是去武汉中心书城顺便买了两本书&#xff0c;另外还买了一本是《帷幕》&#xff0c;至今还没有看。 这本书总共包含了几篇短…

JDK8的 ConcurrentHashMap 源码分析

目录 1. 导读 2. ConcurrentHashMap 成员变量解读 3. ConcurrentHashMap 初始化 3.1 ConcurrentHashMap 无参构造源码解读 3.2 ConcurrentHashMap 带参构造源码解读 3.3 tableSizeFor 方法作用解读 3.4 ConcurrenthashMap初始化总结 4. ConcurrentHashMap 添加元素方法…

14 - 多线程之锁优化(下):使用乐观锁优化并行操作

前两讲讨论了 Synchronized 和 Lock 实现的同步锁机制&#xff0c;这两种同步锁都属于悲观锁&#xff0c;是保护线程安全最直观的方式。 我们知道悲观锁在高并发的场景下&#xff0c;激烈的锁竞争会造成线程阻塞&#xff0c;大量阻塞线程会导致系统的上下文切换&#xff0c;增…

springBoot-使用idea创建项目添加依赖并实现数据查询

一、使用idea创建springBoot项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://mave…

Python小知识 - Python装饰器

Python装饰器 在Python中&#xff0c;装饰器是一个特殊的函数&#xff0c;可以将其他函数包装在装饰器函数中&#xff0c;并且将被包装的函数作为参数传递给装饰器函数。 使用装饰器的好处是可以自动在被包装的函数前后执行一些额外的代码&#xff0c;比如在函数执行前后打印日…

Linux之防火墙

目录 什么是防火墙 分类&#xff1a; Netfilter(数据包过滤) 防火墙无法完成的任务 iptables 与 firewalld 区别 iptables iptables执行原则 规则链 概念 分析 流程图 规则链分类 iptables 流量处理动作 iptables表 四种规则表 安装iptables 预处理 管理命令 …

SpringBoot整合RabbitMQ图文过程以及RabbitTemplate常用API介绍

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Sp…

GUI知识点总结(二)(java)

文章目录 &#x1f412;个人主页&#x1f3c5;JavaSE系列专栏&#x1f4d6;前言&#xff1a;&#x1f993;事件 &#x1f3e8;Adapter 适配器&#x1f415;对话框&#x1f98d;showMessageDialog()&#xff1a;消息对话框&#x1f98d;showConfirmDialog()&#xff1a;确认对话…

ChatGPT 插件 “Consensus“ 实现论文搜索功能;数据工程在语言建模中的重要性

&#x1f989; AI新闻 &#x1f680; ChatGPT 插件 “Consensus” 实现论文搜索功能 摘要&#xff1a;OpenAI 推出了一个名为 “Consensus” 的插件&#xff0c;可在 ChatGPT 上进行论文搜索。用户只需用一句话描述自己想了解的问题&#xff0c;插件就能从 2 亿篇论文中搜索并…

Tomcat架构设计源码剖析

Tomcat架构设计&源码剖析 Tomcat 架构设计 Tomcat的功能&#xff08;需求&#xff09; 浏览器发给服务端的是一个 HTTP 格式的请求&#xff0c;HTTP 服务器收到这个请求后&#xff0c;需要调用服务端程序来处理&#xff0c;所谓的服务端程序就是你写的 Java 类&#xff…

实现 js 中所有对象的深拷贝(包装对象,Date 对象,正则对象)

通过递归可以简单实现对象的深拷贝&#xff0c;但是这种方法不管是 ES6 还是 ES5 实现&#xff0c;都有同样的缺陷&#xff0c;就是只能实现特定的 object 的深度复制&#xff08;比如数组和函数&#xff09;&#xff0c;不能实现包装对象 Number&#xff0c;String &#xff0…

如何压缩图片大小?缩小图片体积跟我学

在日常生活中&#xff0c;我们常常需要处理图片&#xff0c;但是由于图片大小过大&#xff0c;常常带来许多不便。那么&#xff0c;如何压缩图片大小呢&#xff1f;下面就为大家介绍三个方法&#xff0c;让你轻松解决这个问题。 一、使用图片编辑软件 市面上有许多图片编辑软件…

使用HTTP代理上网安全吗?

HTTP代理是一种代理服务器&#xff0c;它可以充当客户端和服务器之间的中介&#xff0c;以帮助客户端访问服务器上的资源。虽然使用HTTP代理可以带来一些便利&#xff0c;但是在安全方面也存在一些问题。 HTTP代理的安全问题 窃取用户信息 如果HTTP代理服务器不受信任&#xff…

【计算机网络】https协议

目录 概念的准备 什么是加密 为什么需要加密 常见的加密方式 对称加密 非对称加密 数据摘要(数字指纹) 数字签名 https的工作过程 方案一&#xff1a;只使用对称加密 方案二&#xff1a;只使用非对称加密 方案三&#xff1a;双方都采用非对称加密 方案四&#xff…

【Spring Boot 源码学习】深入 FilteringSpringBootCondition

走近 AutoConfigurationImportFilter 引言往期内容主要内容1. match 方法2. ClassNameFilter 枚举类3. filter 方法 总结 引言 前两篇博文笔者带大家从源码深入了解了 Spring Boot 的自动装配流程&#xff0c;其中自动配置过滤的实现由于篇幅限制&#xff0c;还未深入分析。 …

2023国赛数学建模C题思路模型 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c; 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…