Mybatis Mybatis-Plus传入多个参数的处理方式

 更新时间:2024年05月10日 09:31:39   作者:默慊$  
这篇文章主要介绍了Mybatis Mybatis-Plus传入多个参数的处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Mybatis Mybatis-Plus传入多个参数处理

在使用Mybatis、Mybatis-Plus开发的过程中,我们经常会遇到传入多个参数的场景,这时如果不加处理的话就可能报错,那么,怎么规避这些问题呢,下面分享下我在项目中的处理:

方案一、

dao层注解处理,也是最常用的一种处理方法,例如:

public boolean updateBean(@Param("id")String id, @Param("code")String code);  

XML Mapper 正常接收使用就好(由于多参数传入,所以不需要设置parameterType)

<update id="updateBean">
    update tableName set code = #[code]  where id = #{id}
</update >

方案二、

Map封装多参数,将要传递的参数封装进map中,然后正常接收使用,例如

public boolean updateBean(HashMap map);  
<update id="updateBean" parameterType="java.util.Map">
    update tableName set code = #[code]  where id = #{id}
</update >

其他的方案都是使用比较少或者限制比较多的,就不一一赘述了,这两种方案应该可以满足我们日常开发的大部分需求了

Mybatis传多个参数常见解决

最近随着项目的深入,逐渐的对数据库的应用越来越深入,已经开始根据自身的业务写mapper方法了,然后看到这篇帖子,好的东西要吸收进来,原文如下:

据我目前接触到的传多个参数的方案有三种。

第一种方案

DAO层的函数方法 

Public User selectUser(String name,String area);

对应的Mapper.xml 

<select id="selectUser" resultMap="BaseResultMap">
    select  * from user_user_t where user_name = #{0} and user_area=#{1}
</select>

其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。

第二种方案

此方法采用Map传多参数

Dao层的函数方法

Public User selectUser(Map paramMap);

应的Mapper.xml

<select id=" selectUser" resultMap="BaseResultMap">
   select  * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}
</select>

Service层调用

Private User xxxSelectUser(){
   Map paramMap=new hashMap();
   paramMap.put(“userName”,”对应具体的参数值”);
   paramMap.put(“userArea”,”对应具体的参数值”);
   User user=xxx. selectUser(paramMap);}

个人认为此方法不够直观,见到接口方法不能直接的知道要传的参数是什么。

第三种方案

Dao层的函数方法

Public User selectUser(@param(“userName”)String name,@param(“userArea”)String area);

对应的Mapper.xml

<select id=" selectUser" resultMap="BaseResultMap">
   select  * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}
</select>

个人觉得这种方法比较好,能让开发者看到dao层方法就知道该传什么样的参数,比较直观,个人推荐用此种方案。

ps:今天在网上看到第三种方案其实还是传个map进去,只不过不用像方案二一样显式的指定,而是通过param注解就可以了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot 整合 Langchain4j AIService 深度使用操作实战教程

    SpringBoot 整合 Langchain4j AIService 深度使用操作实战教程

    文章介绍LangChain4j中AIService组件,通过封装大模型调用逻辑,简化Java应用对接LLM的流程,支持多模型切换、异步调用及@SystemMessage注解增强扩展性,实现灵活的AI服务集成与调用,对SpringBoot Langchain4j AIService使用感兴趣的朋友一起看看吧
    2025-07-07
  • java同步之如何写一个锁Lock

    java同步之如何写一个锁Lock

    本篇文章的目标一是自己动手写一个锁,这个锁的功能很简单,能进行正常的加锁、解锁操作。能更好地理解后面章节将要学习的AQS及各种同步器实现的原理。下面小编来和大家一起学习下吧
    2019-05-05
  • SpringBoot实现热启动的三种方案

    SpringBoot实现热启动的三种方案

    在SpringBoot项目中,传统开发模式下每次修改代码都需要手动重启应用,这会触发完整的 JVM 关闭与重新加载过程,对于大型项目,这个流程耗时 10–30 秒,所以本文给大家介绍了SpringBoot实现热启动的三种方案,需要的朋友可以参考下
    2025-11-11
  • Java线程安全中的原子性浅析

    Java线程安全中的原子性浅析

    这篇文章主要介绍了Java线程安全中的原子性,原子性是指一条线程在执行一系列程序指令操作时,该线程不可中断。一旦出现中断,那么就可能会导致程序执行前后的结果不一致
    2023-02-02
  • SpringBoot集成RabbitMQ的方法(死信队列)

    SpringBoot集成RabbitMQ的方法(死信队列)

    这篇文章主要介绍了SpringBoot集成RabbitMQ的方法(死信队列),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 如何通过properties文件配置web.xml中的参数

    如何通过properties文件配置web.xml中的参数

    这篇文章主要介绍了如何通过properties文件配置web.xml中的参数方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • SpringBoot Security前后端分离登录验证的实现

    SpringBoot Security前后端分离登录验证的实现

    这篇文章主要介绍了SpringBoot Security前后端分离登录验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • jar包加密方案分享

    jar包加密方案分享

    如何对jar包进行加密呢?其实没有想象中的那么困难,有一款开源工具已经提供了较为完善的加密方案,这款开源工具的名字叫做xjar。接下来我们就看一下使用xjar工具给jar包加密有多么的容易。
    2021-06-06
  • 使用Java的Graphics类进行绘图的方法详解

    使用Java的Graphics类进行绘图的方法详解

    这篇文章主要介绍了使用Java的Graphics类进行绘图的方法,是Java的GUI编程的基础,需要的朋友可以参考下
    2015-10-10
  • SpringBoot学习系列之MyBatis Plus整合封装的实例详解

    SpringBoot学习系列之MyBatis Plus整合封装的实例详解

    MyBatis-Plus是一款MyBatis的增强工具(简称MP),为简化开发、提高效率,这篇文章给大家介绍MyBatis Plus整合封装的实例详解,感兴趣的朋友跟随小编一起看看吧
    2020-08-08

最新评论