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注解就可以了。

总结

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

相关文章

  • Java实现空指针后的猜拳游戏

    Java实现空指针后的猜拳游戏

    “java.lang.NullPointerException” 空指针异常可以说是Java程序最容易出现的异常了,小编写了一个 IDEA 插件,每当程序出现空指针异常时就会弹出一个“猜拳游戏”窗口,该窗口不能直接关闭,只有当你游戏获胜时,窗口才会自动关闭
    2022-09-09
  • JPA框架实现分页查询和条件查询功能详解

    JPA框架实现分页查询和条件查询功能详解

    这篇文章主要介绍了JPA框架实现分页查询和条件查询功能,JPA是Java Persistence API的简称,在过去很多数据库的增删查改操作都是用这个框架操作的,感兴趣想要详细了解可以参考下文
    2023-05-05
  • Spring Boot如何使用httpcomponents实现http请求

    Spring Boot如何使用httpcomponents实现http请求

    这篇文章主要介绍了Spring Boot使用httpcomponents实现http请求的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • java响应式编程之Reactor使用示例解析

    java响应式编程之Reactor使用示例解析

    这篇文章主要为大家介绍了java响应式编程之Reactor使用示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Java实战之小蜜蜂扩音器网上商城系统的实现

    Java实战之小蜜蜂扩音器网上商城系统的实现

    这篇文章主要介绍了如何利用Java实现简单的小蜜蜂扩音器网上商城系统,文中采用到的技术有JSP、Servlet 、JDBC、Ajax等,感兴趣的可以动手试一试
    2022-03-03
  • springBoot2.6.2自动装配之注解源码解析

    springBoot2.6.2自动装配之注解源码解析

    对于springboot个人认为它就是整合了各种组件,然后提供对应的自动装配和启动器(starter),基于这个流程去实现一个定义的装配组件,下面这篇文章主要给大家介绍了关于springBoot2.6.2自动装配之注解源码解析的相关资料,需要的朋友可以参考下
    2022-01-01
  • 一分钟了解Java中List集合与set集合的多种遍历方式

    一分钟了解Java中List集合与set集合的多种遍历方式

    这篇文章主要介绍了一分钟了解Java中List集合与set集合的多种遍历方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • java使用POI操作excel文件

    java使用POI操作excel文件

    本文主要介绍了java使用POI操作excel文件,实现批量导出和导入的方法。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Java源码解析重写锁的设计结构和细节

    Java源码解析重写锁的设计结构和细节

    这篇文章主要为大家介绍了Java源码解析重写锁的设计结构和细节,这小节我们以共享锁作为案列,自定义一个共享锁。有需要的朋友可以借鉴参考下
    2022-03-03
  • 浅谈导入JavaWeb 项目出现的问题

    浅谈导入JavaWeb 项目出现的问题

    这篇文章主要介绍了导入JavaWeb 项目出现的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论