mybatis接口函数参数注解@Param

文章介绍了在Mybatis中使用@Param注解的情况,包括单个参数、多个参数以及特殊参数如Page和Wrapper类型。当只有一个参数时,@Param用于重命名;多个参数时,需要注解以避免编译错误;特殊参数如Page用于分页,Wrapper用于构建动态SQL。在XML配置文件中,这些参数可以被引用以构建复杂的查询条件。
摘要由CSDN通过智能技术生成

mybatis接口函数参数注解@Param


在使用mybatis开发时,会定义很多的mapper接口,其中的方法如果是一个通用方法,可以继承Mybatis Plus中的BaseMapper接口,然后通过SQL注入的方式实现该方法的功能,这样后续其他需要该功能的代码也可以直接调用了;如果是专用的方法,可以通过xml配置具体的sql,对于存在参数的接口方法,通常我们会使用@Param对参数进行注解,本质上相当于对传入参数进行重新命名,方便在xml中使用。

接下来主要看一下@Param注解。主要分为以下三种情况
1. 只有一个参数时
2. 有多个参数时
3. 特殊类型

一个参数

  1. 当想要对参数进行重命名时,需要加@Prama
  2. 当传入的参数使用$符引用时,需要@Param,例如传入的是一个sql语句或者是一个table_name或者column_name等
  3. 当xml的sql使用动态sql时,需要加@Param,即在if、when标签中使用了该参数的判断

多个参数

一般传入多个参数必须使用@Param注解,否则会报错
如果想要配置这块,需要配置编译参数 -parameters,如果不想在所有缺少的方法上添加注解,可以在maven-compiler-plugin的configuration上添加<parameters>true</parameters>

注意 :当参数过多时,可以将其组装为一个Map传入,这样也不用使用@Param注解了,里面参数调用直接使用#{key,jdbcType=…}

特殊参数

这里主要是两个参数,分别是Page类型和Wrapper类型的参数。返回分页数据,其返回值一般设置为IPage<T>,其中必须要传入的参数也必须包含IPage<T>,一般设置其为@Param("page")。如果参数中包含Wrapper类型,一般设置为@Param(Constants.WRAPPER) Wrapper<T> wrapper,Constants.WRAPPER值为ew。

IPage<T> functionName(@Param("page") IPage<T> page,@Param(Constants.WRAPPER) Wrapper<R> wrapper,M...m)

在其xml配置文件中,如果需要用到wrapper的数据

<!-- 如果想要直接用wrapper的select语句可以做ew.SqlSelect不为NULL和空的判断 -->
<!-- 如果自己的sql中没有where语句,直接用wrapper的,可以使用${ew.customSqlSegment} -->
<select id="functionName" resultType="java Object">
select * from tb_name where ... 
<if test="ew.nonEmptyOfWhere">
and 
${ew.sqlSegment}
</if>
</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值