`
zhangdaiscott
  • 浏览: 441002 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
8fb25857-16b4-3681-ab5e-e319f45c42a8
Jeecg快速开发平台
浏览量:0
文章分类
社区版块
存档分类

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

阅读更多

     现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数。面对各种复杂的业务场景,传递参数也是一种学问。

下面给大家总结了以下几种多参数传递的方法。

方法1:顺序传参法

public User selectUser(String name, int deptId);

<select id="selectUser" resultMap="UserResultMap">
    select * from user
    where user_name = #{0} and dept_id = #{1}
</select>

#{}里面的数字代表你传入参数的顺序。

这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错。

方法2:@Param注解传参法

public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);

<select id="selectUser" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>

#{}里面的名称对应的是注解@Param括号里面修饰的名称。

这种方法在参数不多的情况还是比较直观的,推荐使用。

方法3:Map传参法

public User selectUser(Map<String, Object> params);

<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 selectUser(User user);
 
<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>

#{}里面的名称对应的是User类里面的成员属性。

这种方法很直观,但需要建一个实体类,扩展不容易,需要加属性,看情况使用。

 

 

分享到:
评论

相关推荐

    总结--Mybatis传递参数的几种方法

    Mybatis 传递参数的几种方法 Mybatis 中传递参数有多种方法,以下是其中的四种: 1. 传递单个参数 在 Mybatis 中,传递单个参数非常简单。可以直接将参数写在方法中,参数类型可以是 String,也可以是基本类型,...

    mybatis 动态sql及参数传递

    多个参数传递 传入单个实体(JavaBean/Map) 传入多个实体 传入集合 使用场景 在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的...

    Mybatis传递多个参数的三种实现方法

    Mybatis是一款流行的持久化框架,它提供了多种方式来传递多个参数,在实际开发中,我们经常会遇到需要传递多个参数的情况,本文将介绍Mybatis传递多个参数的三种实现方法。 第一种实现方法:使用占位符 在Dao层的...

    Mybatis中传递多个参数的4种方法总结

    本文将总结Mybatis中传递多个参数的4种方法,并且介绍了关于使用Mapper接口时参数传递方式。 方法1:顺序传参法 顺序传参法是Mybatis中传递多个参数的一种方法。该方法使用#{ }里的数字代表传入参数的顺序。例如,...

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

    在MyBatis框架中,当需要传递多个参数时,通常有三种常见的解决办法。这些方法各有优缺点,选择哪种取决于个人喜好和项目需求。下面将详细阐述这三种解决方案。 **第一种方案:使用位置参数** 在DAO层,你可以定义...

    Mybatis框架 mapper.xml文件中parameterType传递参数常用的几种方式.pdf

    正确地使用parameterType传递参数对于开发高质量的应用程序至关重要。以下是几种常用的parameterType参数传递方式以及#和$在Mybatis中传参的区别。 1. 使用依次顺序传参: 在这种方式中,参数按照顺序传递,SQL...

    Mybatis传递多个参数进行SQL查询的用法

    在处理多参数查询时,MyBatis提供了多种解决方案,包括通过Map和JavaBean传递参数。下面将详细介绍这两种方法。 ### 1. 通过Map传递多个参数 当需要传递多个参数时,可以使用`Map, Object&gt;`作为方法的参数。在Java...

    Mybatis多参数查询与列表查询不同方式实现

    在Mybatis这个强大的持久层框架中,多参数查询与列表查询是常见的操作,尤其是在处理复杂的业务逻辑时。本文将深入探讨Mybatis如何实现这两种查询方式,并提供多种实现方法。 首先,我们来理解Mybatis的基本概念。...

    MyBatis3传递多个参数(Multiple Parameters)

    MyBatis3传递多个参数是MyBatis框架中的一种重要特性,它允许开发者在执行数据库查询时传递多个参数,有多种方式可以实现多个参数的传递,本文将详细介绍四种常见的方法。 方法一:使用arg0、arg1、arg2等 在...

    解析Mybatis连续传递多个参数的方法

    本文将深入探讨MyBatis如何连续传递多个参数,帮助开发者更好地理解和应用这一功能。 首先,MyBatis允许开发者通过XML或注解来定义SQL语句,这些语句可以包含多个动态参数。动态参数的处理方式有两种,一种是#{},...

    实现mybatis-只有一个参数传递的查询+代码+注释

    本文将详细讲解如何在MyBatis中实现一个只有一个参数传递的查询,包括配置、映射文件和Java代码,以及相关注释。 首先,搭建MyBatis环境是基础步骤。你需要在项目中添加MyBatis的依赖,如`pom.xml`文件中引入Maven...

    mybatis多个接口参数的注解使用方式(@Param)

    @Param 注解方法是 MyBatis 提供的一种参数传递方式,可以将多个参数传递给接口方法。例如,使用 @Param 注解可以将多个参数传递给接口方法,例如: ```java public List&lt;Student&gt; selectBetweenCreatedTime(@Param...

    mybatis 日志 sql参数替换工具

    非常好用的,就是你们所要的 Mybatis日志参数快速替换占位符 sql参数替换工具html

    MyBatis拦截器:给参数对象属性赋值的实例

    MyBatis拦截器是MyBatis框架中的一种插件机制,允许用户自定义代码来扩展MyBatis的功能。在这个特定的实例中,我们讨论的是一个用于给参数对象属性赋值的拦截器。这个拦截器的主要目标是在执行增删改操作时,自动为...

    Mybatis Log(自动填充sql参数打印到控制台)

    Mybatis 提供了一种日志机制,能够自动填充SQL参数并打印到控制台,这对于排查问题和理解查询逻辑非常有帮助。 首先,Mybatis的日志实现依赖于日志库,如Log4j、Logback或Java内置的java.util.logging。为了开启SQL...

    spring+hibernate和spring+myBatis实现连接多个数据库,同时操作的项目

    4. **MyBatis配置**:配置多个数据源的SqlSessionFactory,以及Mapper接口和XML映射文件。 5. **业务逻辑代码**:在服务层或DAO层,通过Spring的@Autowired注解或自定义数据源选择器来切换使用不同的数据源。 6. *...

    MyBatis拦截器分页与动态修改SQL及其参数值

    在MyBatis框架中,拦截器(Interceptor)是一种强大的工具,可以用来在SQL执行的生命周期内插入自定义逻辑。在本主题中,我们将探讨如何利用MyBatis拦截器实现分页查询、动态修改SQL以及调整参数值。这些功能对于...

    mybatis动态sql及参数的传递

    参数传递在MyBatis中主要通过两种方式:Map和JavaBean。Map参数通常用`#{key}`来引用,而JavaBean属性则用`#{property}`引用。MyBatis支持传入多个参数,可以通过`@Param`注解指定参数名。 1. Map参数示例: ```...

    深入了解MyBatis参数

    "深入了解MyBatis参数" MyBatis作为一个流行的持久层框架,对参数的处理和...参数处理是MyBatis框架中非常重要的一部分,深入了解参数处理过程和参数传递方式可以帮助我们更好地使用MyBatis框架,避免参数引起的错误。

    mybatis利用association或collection传递多参数子查询

    其中,使用association或collection来传递多参数子查询是一种常用的方法。本文将对MyBatis的association和collection标签进行详细讲解,并提供实践示例。 什么是association和collection 在MyBatis中,association...

Global site tag (gtag.js) - Google Analytics