2 rukang520 rukang520 于 2014.07.14 11:11 提问

mybatis 实体参数传递
<select id="getUserByParam" resultType="com.ray.bean.User" parameterType="com.ray.bean.User" > 
    select * from t_pub_user t 
     <where>
        <if test="{user_name}!=null">
             t.user_name like CONCAT('%',#{user_name},'%')
        </if>
        <if test="{user_password}!=null">
            and t.user_password like CONCAT('%',#{user_password},'%')
        </if>
    </where>
     limit #{1},#{2} 
</select>

上面是我的配置文件,下面是我的java方法

public List<User> getUserByParam(User user,Integer pageNo,Integer pageSize);

执行这个查询报
Parameter 'user_name' not found. Available parameters are [2, 1, 0, param1, param2, param3]

这个错,是什么原因,为什么找不到user_name,事实上我这个User对象里面是有这个属性的

4个回答

BAOBAO_502
BAOBAO_502   2015.10.07 00:05

像楼上所说的一样,在mapper接口中添加映射参数 public List getUserByParam(**@Param("user")**User user,@Param("pageNo")Integer pageNo,@Param("pageSize")Integer pageSize);


select * from t_pub_user t


t.user_name like CONCAT('%',#{user.user_name},'%')


and t.user_password like CONCAT('%',#{user.user_password},'%')


limit #{1},#{2}


yeq2014
yeq2014   2015.04.23 17:31

你的xml文件中的参数是一个实体类的,但是你接口中的又是几个参数,执行的时候参数对应乱了

vispin
vispin   2015.05.05 14:00

把你的方法改成这样
public List getUserByParam(@Param("user")User user,@Param("pageNo")Integer pageNo,@Param("pageSize")Integer pageSize);

import org.apache.ibatis.annotations.Param;

qq_26081967
qq_26081967   2016.12.13 19:58

加注解亲测有用@Param("user")

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!