MyBatis注解开发中传多参问题

在Mybatis中使用注解开发时传入多参会遇到这样的错误:
代码如下:

//接口代码
	/**
     * 模糊查询
     * @param name
     * @return
     */
    @Select("select * from user where username like '%${name}%' and sex=#{sex}")
    public List<User> findByName(String name, String sex);
//测试类代码
@Test
    public void TestfindByName(){
        List<User> users = userDao.findByName("王","男");
        for (User user : users) {
            System.out.println(user);
        }
    }

报错信息如下:
org.apache.ibatis.exceptions.PersistenceException:

Error querying database. Cause: org.apache.ibatis.binding.BindingException: Parameter ‘name’ not found. Available parameters are [arg1, arg0, param1, param2]
Cause: org.apache.ibatis.binding.BindingException: Parameter ‘name’ not found. Available parameters are [arg1, arg0, param1, param2]

出现这种情况是因为传入多参时在注解中并不能识别,所以解决办法有两个:
第一种:在注解中使用参数时直接使用param1、param2、、、、这样会自动识别。

 /**
     * 模糊查询
     * @param name
     * @return
     */
    @Select("select * from user where username like '%${param1}%' and sex=#{param2}")
    public List<User> findByName(String name, String sex);

第二种办法:如果你不想使用第一种,想直接使用自己定义的参数名如下,在定义接口时直接注解他为参数。

 @Select("select * from user where username like #{name} and sex=#{sex}")
    public List<User> findByNameTwo(@Param("name") String name, @Param("sex") String sex);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值