小编A s*_*ams的帖子

如何正确使用Mybatis的@Param注解

一开始我没有使用@Param注解,这是我的mapper.java

public void changeUserAuth(Integer userId,int identity);
Run Code Online (Sandbox Code Playgroud)

,这是我的 mapper.xml

<update id="changeUserAuth">
    update user
    <set>
        <if test="identity != 0">identity = #{identity}</if>
    </set>
    <where>
        <if test="userId != 0">userId = #{userId}</if>
    </where>
</update>
Run Code Online (Sandbox Code Playgroud)

那么就正常运行了!我继续这样写,如下:

//this's mapper.java
public void updateUserStatus(Integer userId);

<!--this is mapper.xml>
<update id="changeUserAuth">
    update user
    set deleteFlag= true
    <where>
        <if test="userId != 0">userId = #{userId}</if>
    </where>
</update>
Run Code Online (Sandbox Code Playgroud)

然而,它给出了一个错误,消息是

'class.java.lang.Integer' 中没有名为 'userId' 的属性的 getter

我可以理解mybatis无法解析Integer,但是为什么它不像我第一次使用那样错误,仅仅因为我有一个int类型的参数?在第二种方法中,我必须使用@Param注解

annotations mybatis

1
推荐指数
1
解决办法
2091
查看次数

标签 统计

annotations ×1

mybatis ×1