MyBatis传入多个参数的问题-你想要知道的都在这里

Mybatis传多个参数(三种解决方案) 据我目前接触到的传多个参数的方案有三种。 第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml select * from user_user_t where user_name = #{0} and user_area=#{1} 其中,#{0}代表接收的 阅读详情

MyBatis传入多个参数的问题

 

一、单个参数:

复制代码
public List<XXBean> getXXBeanList(String xxCode);  

<select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">

  select t.* from tableName t where t.id= #{id}  

</select>  

其中方法名和ID一致,#{}中的参数名与方法中的参数名一直, 我这里采用的是XXXBean是采用的短名字,

select 后的字段列表要和bean中的属性名一致, 如果不一致的可以用 as 来补充。
复制代码

 

二、多参数:

复制代码
public List<XXXBean> getXXXBeanList(String xxId, String xxCode);  

<select id="getXXXBeanList" resultType="XXBean">

  select t.* from tableName where id = #{0} and name = #{1}  

</select>  

由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始
复制代码

 

三、Map封装多参数:  

复制代码
public List<XXXBean> getXXXBeanList(HashMap map);  

<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">

  select 字段... from XXX where id=#{xxId} code = #{xxCode}  

</select>  

其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。 
复制代码

 

 四、List封装in:

复制代码
public List<XXXBean> getXXXBeanList(List<String> list);  

<select id="getXXXBeanList" resultType="XXBean">
  select 字段... from XXX where id in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
    #{item}  
  </foreach>  
</select>  

foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4') 
复制代码

 

五、多参数传递之注解方式示:    

 

复制代码
例子:
 
public AddrInfo getAddrInfo(@Param("corpId")int corpId, @Param("addrId")int addrId);
 
xml配置这样写:
 
<select id="getAddrInfo"  resultMap="com.xxx.xxx.AddrInfo">
       SELECT * FROM addr__info 
    where addr_id=#{addrId} and corp_id=#{corpId}
</select> 以前在<select>语句中要带parameterType的,现在可以不要这样写。
复制代码

 

 

六、selectList()只能传递一个参数,但实际所需参数既要包含String类型,又要包含List类型时的处理方法:

将参数放入Map,再取出Map中的List遍历。如下:

复制代码
List<String> list_3 = new ArrayList<String>();
Map<String, Object> map2 = new HashMap<String, Object>();
list.add("1");
list.add("2");
map2.put("list", list); //网址id

map2.put(
"siteTag", "0");//网址类型
复制代码

 

public List<SysWeb> getSysInfo(Map<String, Object> map2) {
  return getSqlSession().selectList("sysweb.getSysInfo", map2);
}

 

复制代码
<select id="getSysInfo" parameterType="java.util.Map" resultType="SysWeb">
  select t.sysSiteId, t.siteName, t1.mzNum as siteTagNum, t1.mzName as siteTag, t.url, t.iconPath
   from TD_WEB_SYSSITE t
   left join TD_MZ_MZDY t1 on t1.mzNum = t.siteTag and t1.mzType = 10
   WHERE t.siteTag = #{siteTag } 
   and t.sysSiteId not in 
   <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
       #{item}
   </foreach>
 </select>
复制代码
【MyBatis笔记04】MyBatis框架中各种参数类型绑定的方式 MyBatis对于JavaBean类型的参数,它在进行参数绑定的时候,是根据对应的【getter】方法来获取参数值的,也就是说,XML映射文件里面的参数名称,必须是在JavaBean实体类里面具有【getXXX()】方法的,这样才能够进行参数绑定。上面定义了一个参数的接口方法,可以看到接口方法中的参数名称叫做:id,而在XML映射文件里面则是使用【#{abc}】来获取的参数,MyBatis对于只有一个参数的时候,是支持这种写法的。两个参数名称,相比于List集合,Set集合缺少一个参数名称。...... 阅读详情

相关推荐

Mybatis传递多个参数的解决办法(三种)

主要介绍了Mybatis传递多个参数的解决办法(三种),个人觉得第三种解决办法比较好用,有需要的朋友一起学习吧

MyBatis传入多个参数的问题

一、单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">   select t.* from tableName t wher...

weixin_30362083的博客 441

TCP Reno/CUBIC 拥塞控制算法对比:从 Tahoe 到 BBR 的 4 种核心策略演进

本文深入解析了TCP拥塞控制算法的演进历程,从经典的Tahoe、Reno到现代的CUBIC和BBR,详细对比了4种核心策略的实现机制与性能差异。通过分析拥塞窗口、流量控制等关键技术,揭示了不同算法在高带宽延迟网络中的优化方向,为网络协议栈优化提供理论依据和实践指导。

weixin_33725239的博客 442

Mybatis传递多个参数的4种方式(干货)

image 现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数。面对各种复杂的业务场景,传递参数也是一种学问。 下面给大家总结了以下几种多参数传递的方法。 方法1:顺序传参法 public Use...

weixin_34357267的博客 1405

scGPT实战指南:如何用生成式AI加速你的单细胞多组学研究?

本文提供了scGPT在单细胞多组学研究中的实战指南。详细介绍了从环境部署、数据预处理到细胞类型注释与扰动预测等核心任务的操作流程。通过利用生成式AI和Transformer基础模型,scGPT能够显著加速分析,并提升细胞注释的准确性及基因调控网络推断的深度,为研究人员提供了强大的AI分析引擎。

weixin_29215815的博客 403

WinForm实战:如何用C#和PdfiumViewer打造一个功能齐全的PDF阅读器(含源码)

本文详细介绍了如何使用C#和PdfiumViewer库从零开始构建一个功能齐全的WinForm PDF阅读器。内容涵盖项目环境搭建、核心组件解析、基于命令模式的工具栏与UI架构设计,并深入讲解了智能缩放、页面导航、打印功能等核心交互的实现,以及内存管理和性能优化等高级话题,为开发者提供了一套完整的实战解决方案。

docker8compose的博客 505

mybatis foreach 循环,传入多个参数

mybatisforeach循环,传入多个参数 上代码: controller: @RequestMapping(value = "/findPage", method = RequestMethod.POST) @ResponseBody public Object findPage(@RequestParam(required=false) String jobCa...

f45056231p的博客 1万+

OpenCV中SGBM中BT代价计算

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_27606639的博客 5978

mybatis中collection的column传入多个参数问题

mybatis中collection的column传入多个参数值: 标签属性: property: resultMap返回实体类中字段和result标签中的property一样 column: 数据库的列名或者列标签别名,是关联查询往下一个语句传送值。注意:在处理组合键时,您可以使用column=“{prop1=col1,prop2=col2}”这样的语法,设置多个列名传入到嵌套查询语句。这就会把prop1和prop2设置到目标嵌套选择语句的参数对象中。 javaType: 一般为ArrayList或是

不吃肉肉的博客 1万+

Day470&471.Netty概述&Netty高性能架构设计 -netty

Netty概述 一、原生 NIO 存在的问题 NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。 需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的 NIO 程序。 开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。 JDK NIO

阿昌爱Java 1572

数字IC后端PR阶段Innovus,ICC,ICC2修复short万能脚本分享

数字IC后端PR阶段Innovus,ICC,ICC2修复short万能脚本分享

weixin_37584728的博客 3465

Mybatis传入多个参数的四种方式

MyBatis传入多个参数的四种方式

健身变秃,coding变强 3192

基于微博API与Scrapy-Redis的城市情绪地图数据爬取实战

本文详细介绍了如何利用Python爬虫技术从微博平台获取用户发布内容,用于构建城市情绪地图的毕业设计项目。文章涵盖了微博API的调用、Scrapy-Redis分布式爬虫架构、数据清洗与存储、反爬虫策略应对以及情绪分析预处理等关键技术,提供了完整的代码实现和实战经验。python复制下载# items.py"""清洗文本数据"""if text:# 移除HTML标签# 移除多余空白字符"""解析微博日期格式"""

2201_76125261的博客 446

MyBatis传入多个参数

MyBatis传入多个参数

张誌先生的博客 3439

Vue3 - 详解实现网站接入钉钉扫码登录功能,钉钉授权生成登录二维码用户用手机扫描二维码登陆,支持弹框式、浏览器单独新开页显示,钉钉扫描二维码登录详细流程及示例代码,最新vue集成钉钉扫码授权登录!

vue3,nuxt3,钉钉,扫码登录,vue3钉钉扫码登陆,钉钉授权第三方WEB网站扫码登录功能,钉钉扫码登录第三方网站,单点登录,二维码不显示,报错,扫了没反应,出错,vue3钉钉扫码登录,内嵌,获取个人信息,pc网页钉钉登录,钉钉扫码登录怎么新开一页,跳页显示二维码,内嵌登录二维码,iframe新页面弹出,弹出一个小窗口显示登录二维码,登录报错,扫码没反应,解决手机点登录报错没反应,官方文档,手机扫描钉钉二维码登录网站,页面弹出一个小窗口而不是打开一个页面,vue3中使用iframe实现另开小窗口扫码登

🏆 前端领域优质创作者 3696

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

简述mybatis的四种传入多个参数的方法

使用mybatis在CRUD的时候经常会需要传入参数,在语法上,mybatis只允许传入一个参数,但是通过一些技巧,我们就可以传入多个参数,下面我简述传入多个参数的四种方法。 第一种方法 逻辑扩充 我们最常用的方法就是使用逻辑扩充方法。 模拟场景:我们需要添加学生的三个属性值到数据库内,分别为studentId,studentName,studentAge,此时可以将三个属性封装成Student对...

baidu_41860619的博客 2990

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

mybatis传入多个参数以及list集合参数

mybatis进行传参的时候,可能传入单个参数,也可能传入对象参数,也可能传入list集合参数; 在接口传参数的时候不免会用到一个注解,@Param注解。 1.使用@Param注解 当以下面的方式进行写SQL语句时: @Select("select column from table where userid = #{userid} ") public int select...

weixin_40159122的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MyBatis传入多个参数 ,List集合

一、单个参数 public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">   select t.* from tableName t where t.id= #...

阿瑞瑞 2832

Mybatis 同时传入对象和多个参数

接口文件使用 @param 注解 /** * @author lenovo *@param ContingencyPlanApplyVo cv 对象 *@param String territoryCode 参数 *@return List<ContingencyPlanApplyVo> */ List<ContingencyPlanApply...

panlin1506913260的博客 1万+

Mybatis如何传入多个参数

文章目录第一种方式:使用@Param注解方式第二种方式:按照参数的编写顺序总结 第一种方式:使用@Param注解方式 ​  此种方式用法是我们在接口中写方法的参数时,在每个参数的前面加上一个@Param注解即可。 ​  该注解有一个value属性,我们可以给加上注解的参数取个名字,在SQL语句中我们可以通过这个名字获取参数值。 ​  由于传入了多个参数,所以映射文件的入参ParameterType...

超威蓝猫的博客 1298

mybatis传入多个map参数

如果你不但需要传入map作为参数去sql中遍历,还需要传入别的参数 1,首先,传入map的遍历方式 把要传入的map转换为如下的形式 Map<String,Map<String,String>> map = new HashMap<>(); mabatis遍历中 <foreach collection="Map_Name" i...

yuang12345的博客 3394

mybatis中association和collection的column传入多个参数

mybatis中association和collection的column传入多个参数值 项目中在使用association和collection实现一对一和一对多关系时需要对关系中结果集进行筛选,如果使用懒加载模式,即联合使用select标签时,主sql和关系映射里的sql是分开的,查询参数传递成为问题。 mybatis文档: property description column ...

幸福的娃娃菜 1669

MyBatis中association和collection中的column传入多个参数

mybatis中association和collection的column传入多个参数值 项目中在使用association和collection实现一对一和一对多关系时需要对关系中结果集进行筛选,如果使用懒加载模式,即联合使用select标签时,主sql和关系映射里的sql是分开的,查询参数传递成为问题。 mybatis文档: property description c...

大橙子_Change的博客 1657

mybatis中association和collection的column传入多个参数问题

mybatis中association和collection的column传入多个参数值 项目中在使用association和collection实现一对一和一对多关系时需要对关系中结果集进行筛选,如果使用懒加载模式,即联合使用select标签时,主sql和关系映射里的sql是分开的,查询参数传递成为问题。 mybatis文档: property description colum...

飞奔的小土豆@1024 1664
上一篇: Memcached Java Client API详解
下一篇: 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值