MyBatis 传递多个参数的方法

这里有三种方法可以用来传递参数:

1.利用Map(不推荐);

2.利用注解(推荐,在参数小于5个时使用比较方便)

3.利用Java Bean,推荐,在参数大于5个即参数比较多时候使用。

#使用注解:

//使用注解来传递多个参数
    public List<Role> findRolesByAnnotation(@Param("roleName") String rolename,@Param("note") String note);
 <!--使用注解的方法来传递多个参数-->
    <select id="findRolesByAnnotation" resultType="role">
        select id,role_name as roleName,note from t_role where role_name like concat('%',#{roleName},'%')
        and note like concat('%',#{note},'%')
    </select>

这里的注解对应着映射器里的,所以两个要写一样!

 

#使用java bean的方法:

//使用java bean的方法来传递多个参数
    public List<Role> findRolesByBean(Role role);
 <!--使用Java bean的方法来传递多个参数-->
    <select id="findRolesByBean" resultType="role" parameterType="com.learn.ssm.chapter3.pojo.Role">
        select id,role_name as roleName ,note from t_role where role_name like concat('%',#{roleName},'%')
        and note like concat('%',#{note},'%')
    </select>

用的时候:

 Role role = new Role();
            role.setRoleName("江");
            role.setNote("学");
            List<Role> rolesByBean = roleMapper.findRolesByBean(role);
            for (Role role1 : rolesByBean) {
                log.info(role1.getRoleName());
                log.info(role1.getNote());

            }

执行的时候,映射器里的参数是通过反射来获得:把参数的第一个字母变成大写再和测试结合,例如:roleName变成:getRoleName();故这里参数名称要区对,要不然会抛出错误找不到对应的Getter!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值