Mybatis 入参类型方式全面详解
作者:Mzoro 发布时间:2023-10-16 20:03:40
标签:Mybatis,入参,类型
Mybatis 入参方式
单个基本类型或 String 参数
在 mapper 文件中随便写
<select id="" resultMap="resultMap">
select * from USER_INFO t where t.name = #{sdfa,jdbcType=VARCHAR}
</select>
List<Student> get(String name);
单个 Map 或者自定义类型的
如是 Map , 那么参数各是 Map 的 key
如果是自定义类型的,参数是属性名,更确切的说是 get 方法,例如:getName (), 那么 mapper 文件中就要写 #{name,jdbcType=VARCHAR}
如果是单个的 Collection
参数名字就是 collection
<select id="" resultMap="resultMap">
select * from USER_INFO t where t.name in
<foreach collection="conllection" item="i" ......>
</foreach>
</select>
List<Student> get(List<String> names);
如果是多个参数
可以使用 @Param ("parametername")
<select id="" resultMap="resultMap">
select * from USER_INFO t where t.name in
<foreach collection="param" item="i" ......>
</foreach>
and age = #{age,jdbcType=NUMERIC}
</select>
List<Student> get(@Param("param") List<String> names,@Param("age") int age);
如果不想使用 @Param,而是想直接使用接口方法参数的变量名作为 mapper 的参数名,需要增加 编译参数 -parameters
, 并启用 useActualParamName
选项(默认开启)来编译项目这里以 maven 为例
普通工程
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<target>1.8</target>
<source>1.8</source>
<parameters>true</parameters>
</configuration>
</plugin>
</plugins>
</build>
springboot:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-parameters</jvmArguments><!-- 增加这个参数 -->
</configuration>
</plugin>
如上设置好之后 ,就可以直接用接口方法参数名作为 mapper 参数了
接口文件中:
List<ComBusinessSwitch> getSwitchByCode(String code, String orgId, String stationId);
mapper 文件中
<select id="getSwitchByCode" resultMap="BaseResultMap">
select * from SWITCH T where code = #{code,jdbcType=VARCHAR} and orgid = #{orgId,jdbcType=VARCHAR} and stationid = #{stationId,jdbcType=VARCHAR}
</select>
来源:https://my.oschina.net/Mzoro/blog/3147716


猜你喜欢
- 最近经朋友介绍开始玩 密传 网络游戏 升级升级,突然觉得太费键盘,于是自己用C#写了一个程序,想代替我的操作,自己去打怪物,自己升级 用这个
- 一、泛型1.1 泛型类的定义// 1. 尖括号 <> 是泛型的标志// 2. E 是类型变量(Type Variable),变量
- Android签名机制什么是Android签名了解 HTTPS 通信的同学都知道,在消息通信时,必须至少解决两个问题:一是确保消息来源的真实
- 一、准备java我已经把java装到了在D盘:二、配置java环境变量点击设置,进入windows设置页面;搜索高级系统设置:在系统变量里添
- 特性(Attribute)是将额外数据关联到一个属性(以及其他构造)的一种方式,而枚举则是在编程中最常用的一种构造,枚举本质上其实是一些常量
- 本文将引导大家做一个音乐播放器,在做这个Android开发实例的过程中,能够帮助大家进一步熟悉和掌握学过的List
- 这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较
- 一般文本文件我们以日志文件.log文件为例:import java.io.BufferedReader; import java.io.Fi
- 前言惰性计算(尽可能延迟表达式求值)是许多函数式编程语言的特性。惰性集合在需要时提供其元素,无需预先计算它们,这带来了一些好处。首先,您可以
- 在本人用editplus写java文件时碰到的问题。 import java.util.*;class collection{ &
- Android 读取文件内容实现方法,这里整理了几种方法,大家需要可以看下。如果要打开存放在/data/data/<package n
- 前言我在以往的文章中曾介绍过如何给Word文档添加文本水印和图片水印,及怎样删除文档中的水印。关于文本水印,之前那篇教程里主要指的是单行字体
- 前言Go 语言比 Java 语言性能优越的一个原因,就是轻量级线程Goroutines(协程Coroutine)。本篇文章深入分析下 Jav
- GC,Garbage Collect,中文意思就是垃圾回收,指的是系统中的内存的分配和回收管理。其对系统性能的影响是不可小觑的。今天就来说一
- 一、背景单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx会代理到不同节点。假设一开始用户连接了n
- 本文实例为大家分享了java数字转汉字工具类的具体代码,供大家参考,具体内容如下/** * Created by 33303 on 2017
- 一,二分法检索算法介绍二分法检索(binary search)又称折半检索,二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组(a
- 目录1.前言2.不同进制的特点3.进制之间的转换3.1 二进制转十进制:3.2 十进制转二进制:3.3 二进制转八进制:3.4 十六进制转二
- VC和BCB中做一个Server的监听程序,只需要指定端口,然后监听(Listen)就行了.在C#找不到这个函数了,慢慢看MSDN,怎么需要
- 1.元组(Tuple)元组(Tuple)在4.0 的时候就有了,但元组也有些缺点,如: 1)Tuple 会影响代码的