关于Mybatis的@param注解及多个传参
作者:不放糖的苦咖啡 发布时间:2021-09-10 21:17:21
标签:Mybatis,注解,@param,传参
1. Mybatis的@param注解
自定义对象也用@param注解
注:使用@param注解,mapper.xml 不加parameterType。
2. Mybatis 传入多个参数,解决方案
(1) 顺序传参法
public User selectUser(String name, int deptId);
<select id="selectUser" resultMap="UserResultMap">
select * from user
where user_name = #{0} and dept_id=#{};
</select>
说明: #{} 里面的数字代表传入参数的顺序 注:这种方式不建议使用,sql层表达不够直观,并不清楚参数名称,一旦顺序调整就会容易出错。
(2) @Param 注解传参法
public User selectUser(@param("userName")String name, @param("userArea") String userArea);
<select id="**" resultMap="**">
select * from user_user_t where username = #{userName} and userarea= #{userArea};
</select>
说明:#{} 里面的名称对应的是注解@Param括号中里面修饰的名称,这种方式比较直观,在参数比较少的情况下还是可以推荐使用的。
(3) Map 传参法
public User slectUser(Map<String, Object> param);
<select id="selectUser" parameterType="java.util.Map", resultMap="UserResultMap">
select * from user
where user_name=#{userName} and dept_id=#{deptId};
</select>
说明:#{} 里面名称对应的是Map里面的key 名称 这种方式适合传递多个参数,且参数易便能灵活传递的情况。
(4) Java Bean 传参数
public User slectUser(Map<String, Object> param);
<select id="selectUser" parameterType="com.test.User", resultMap="UserResultMap">
select * from user
where user_name=#{userName} and dept_id=#{deptId};
</select>
说明: #{} 里面的名称对应的是User类里面的成员属性,这种方式比较直观,但需要一个实体类,需要加属性。
来源:https://blog.csdn.net/it_lxg123/article/details/117263825


猜你喜欢
- spring的事务控制本质上是通过aop实现的。在springboot中使用时,可以通过注解@Transactional进行类或者方法级别的
- 一、概述无论是什么语言,在多线程编程中,常常会遇到多个线同时操作程某个变量(读/写),如果读/写不同步,则会造成不符合预期的结果。例如:线程
- yaml介绍YAML(YAML Ain't Markup Language),一种数据序列化格式优点:容易阅读容易与脚本语言交互以数
- 看了Android版QQ的自定义头像功能,决定自己实现,随便熟悉下android绘制和图片处理这一块的知识。先看看效果:思路分析:这个效果可
- 使用xml编写动态sql在Resources文件夹下创建一个Mapper文件夹比如我们需要在User表中使用增删改查,创建UserMappe
- 本文主要是自定义了EditText,当EditText有文本输入的时候会出现删除图标,点击删除图标实现文本的清空,其次对密码的返回做了处理,
- 本文实例介绍了C 语言实现线程池,支持动态拓展和销毁,分享给大家供大家参考,具体内容如下实现功能1.初始化指定个数的线程2.使用链表来管理任
- 看了这个排行榜, 小编只想说:流水的编程语言,铁打的Java,C/C++!!人工智能的前景已经不用多说了,越来越多的人看重人工智能的前景,想
- 在本博客中,可以找到一篇《c#实现输出的字符靠右对齐的示例》它有教大家怎样实现字符串输出进行左齐或者是右对齐。本篇的方法,超简单,是使用st
- 云计算、大数据地快速发展催生了不少热门的应用及工具。作为老牌语言Java,其生态圈也出来了一些有关云服务、监控、文档分享方面的工具。本文总结
- 场景:PageHelper 的默认分页方案是 select count(0) from (你的sql) table_count由于查询数据比
- JAVA JNI函数的注册过程详细介绍我们在java中调用Native code的时候,一般是通过JNI来实现的,我们只需要在java类中加
- 先看看电影票在线选座功能实现的效果图:界面比较粗糙,主要看原理。这个界面主要包括以下几部分1、座位 2、左边的排数 3、左上方的缩略图 4、
- C#是托管型代码,创建的对象会自动回收。C++是非托管型代码,创建的对象需要手动回收(有时不手动回收,可能出现内存溢出的问题)。C#调用C+
- 本文实例讲述了C#获取项目指定目录下文件的方法。分享给大家供大家参考。具体如下:public List<FileInfo> Ge
- 本文实例讲述了C#实现字符串与图片的Base64编码转换操作。分享给大家供大家参考,具体如下:using System;using Syst
- 本文实例为大家分享了Java实现斗地主小游戏的具体代码,供大家参考,具体内容如下原理图:斗地主过程: * 1
- 开篇我们还是和原来一样,讲一讲做爬虫的思路以及需要准备的知识吧,高手们请直接忽略。首先我们来缕一缕思绪,想想到底要做什么,列个简单的需求。需
- 导言目前截屏的方法很多,root不适用,要么其他方法就是有局限性,而其中官方给出的方案最好—MediaProjection介绍Android
- 要想使用Eclipse开发Android应用,首先要安装一个ADT插件,在此记录一下在Eclipse中采用在线安装的方式ADT插件,我使用的