首页 > 其他分享 >MyBatis参数传递和接受(@Param)

MyBatis参数传递和接受(@Param)

时间:2023-10-05 21:12:28浏览次数:37  
标签:username gender Param 参数传递 参数 别名 MyBatis 注解

一、@Param注解传递多个普通类型参数

在接收端便可使用 #{别名}的方式接收参数。

 

简单地说,在接口文件中使用org.apache.ibatis.annotations.Param类型的注解@Param为参数定义别名;在映射文件中使用#{别名}获取参数。

 

在此,我们以查询为例讲解利用@Param注解传递和接收多个普通类型参数。例如,以用户名或性别作为条件查询用户,所以需要传递两个参数。

 

接口文件UserParameterMapper.java相关代码如下:

List<User> queryUsersByUsernameOrGender(@Param("username") String u, @Param("gender") String g);

在该方法中使用@Param注解为第一个参数设定别名为username,为第二个参数设定别名为gender。

映射文件UserParameterMapper.xml相关代码如下:

<select id="queryUsersByUsernameOrGender" resultType="User">

select * from user where username = #{username} or gender= #{gender}

</select>

在该<select/>标签中利用#{别名}的方式获取传递过来的用户名和性别。

 

二、@Param注解传递多个POJO类型参数

 

与利用@Param传递多个普通类型参数类似,我们可利用@Param传递多个POJO类型参数。在此,我们以传入2个User对象为例讲解结合@Param传递多个POJO作为参数的情况。

 

 

接口文件UserParameterMapper.java相关代码如下:

List<User> queryUsersByTwoUserWithParam(@Param("firstUser")User fu, @Param("secondUser")User su);

 

定义查询用户的方法queryUsersByTwoUserWithParam,利用@Param注解设置第一个参数的别名为firstUser,注解设置第二个参数的别名为secondUser。

 

 

 

映射文件UserParameterMapper.xml相关代码如下:

 

<select id="queryUsersByTwoUserWithParam" resultType="User">


select * from user where username = #{firstUser.username} or gender= #{secondUser.gender}


</select>

 

在该<select/>标签中利用#{POJO别名. 的属性名}的方式获取第一个User对象的username,获取第二个User对象的gender作为查询条件。

 

标签:username,gender,Param,参数传递,参数,别名,MyBatis,注解
From: https://www.cnblogs.com/shangeg/p/17743922.html

相关文章

  • MyBatis运行原理
    MyBatis运行原理为了更加深入和清晰地掌握MyBatis,我们来深入了解MyBatis的运行原理,如图所示。 从上图可以看出,MyBatis框架在操作数据库时大致经过了10个步骤;具体如下:读取MyBatis全局配置文件mybatis-config.xml。该文件中存有MyBatis的运行信息以及数据库连接信息。加......
  • Mybatis知识
    1.#{}和${}{}解析为SQL时,会将形参变量的值取出,并自动给其添加引号。username="Amy"{}可以防止SQL注入而${}却不行${}解析为SQL时,将形参变量的值直接取出,直接拼接显示在SQL中username=${value}->username=Amyusername='${value}'->username='Amy'模糊查询场景......
  • MyBatis配置文件
    1、pom.xml文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http:/......
  • MyBatis概念
    一、MyBatis特征1、它是一个半自动的ORM框架。2、轻便、灵活;功能强大、使用简单、扩展性极强。3、支持定制化SQL、存储过程以及高级映射。4、避免了几乎所有的JDBC代码和手工操作。5、可使用XML或注解将接口和POJO映射成数据库中的记录。 2、ORM模型概要简单地说,ORM......
  • MyBatis知识
    MyBatisMyBatis是一款优秀的半自动的ORM持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式......
  • mybatis项目启动报错:reader entry: ���� = v
    问题再现在SSM项目中,启动程序时控制台会报乱码,如下图所示:解决方案一去掉mybatis配置文件中关于别名的配置,然后在mapper.xml文件中使用完整的类名。待删除的示例代码如下:<typeAliases><packagename="com.tiku.domain.entity"/></typeAliases>解决方案二添加新的依赖......
  • Mybatis - 通过中间表查询表A和表B
    中间表中间表存储了表A的id和表B的id,除此之外还存储了自身需要的字段,如创建时间、id。xml很简单,通过多个子查询获取数据就可以了,将中间表的字段传递给子查询的column,子查询获取这个参数进行where条件查询。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmappe......
  • Mybatis查询报错 foreach 子查询 (invalid comparison)
    Mybatis查询报错invalidcomparison:java.lang.Stringand[Ljava.lang.String;原因去掉黄色部分<iftest="null!=businessTypeand''!=businessType">  andt.businessTypein     <foreachcollection="businessType"......
  • MyBatis 注解写 SQL 判断空字符串 或 判断为空
    XXXXMapper接口:这里判断数据不能为空@Select("<script>" +"select*fromgs_store" +"<where>" +" <iftest='storeTel!=null'>" +" andstore_tel=#{storeTel}" +" <......
  • mybatis出现错误 java lang NumberFormatException:For input string:A1
    使用mybatis,当使用map传参并且在iftest判断时使用map中所传的参数时,可能会产生如题的报错,具体报错信息见下图:分析这个错误,自己调试也找过度娘,“坚信”自己代码并没问题,但是问题始终无法解决。最后在一个帖子看到说iftest判断时,传入的参数跟匹配的值类型必须一致,于是调整了自己代......