一、@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