Mybatis中的@Param用于解决ognl的解析问题

1. Mybatis的@param注解
自定义对象也用@param注解
注:使用@param注解,mapper.xml 可以不加parameterType。

@Param作用于Dao层,是为了传递多个参数,解决的是可读性和直观性

我们简单看一下使用:
List<PreEndBlogListVO> selectBlogListByTypeId(@Param("typeId") Integer id);
上述 @Param 作用其实就是将 id 重命名为 typeId 。因此,我们可以在xml中这样使用:


<select id="selectBlogListByTypeId" resultMap="preEndBlogListMap">
     select id,title,description from blog where type_id=#{typeId,jdbcType=INTEGER}
</select>
1.并且当参数来自于多个不同POJO时候,使用@Param后,Mybatis会自动检索参数类型,也就是不用再在xml中配置 parameterType 属性了。
public List<Role> findRoleByMix(@Param("roleP") RoleParam role, @Param("permissionP") PermissionParam permission);
xml配置:

<select id="findRoleByMix" resultType="role">
    SELECT id,name FROM t_role
    WHERE roleName=#{roleP.roleName}
    AND note=#{rolep.note}
    AND level=#{permissionP.level}
<select>

2.并且当参数来为Map<String,Object>时候,使用@Param后,Mybatis会自动检索参数类型,也就是不用再在xml中配置 parameterType 属性了。
参数为Map<String,Object>时候未使用@Param问题:
List<Map<String, Object>> xxxMethod(Map<String,Object> param)
对应Mapper.xml的方法中参加自动生成是:parameterType="java.util.Map&lt;java.lang.String,java.lang.Object&gt;",这种情况导致编译错误。
使用parameter

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木鱼-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值