当前位置: 代码网 > it编程>编程语言>Java > MyBatis-Plus中的更新操作方式(通过id更新和条件更新)

MyBatis-Plus中的更新操作方式(通过id更新和条件更新)

2026年04月23日 Java 我要评论
一、通过id更新1.查看mapper继承的basemapper下通过id更新的方法updatebyid可看出参数传入的是一个对象。并且返回的是一个int类型的值,该值的含义就是受影响的行数。为0表示更

一、通过id更新

1.查看mapper继承的basemapper下通过id更新的方法updatebyid可看出参数传入的是一个对象。并且返回的是一个int类型的值, 该值的含义就是受影响的行数。

为0表示更新失败,作为以后开发中要处理的逻辑有用处。

如下图所示:

2.编写测试类testupdatebyid方法,在方法中通过调用mp的updatebyid对数据库表中的名字和邮箱进行修改。

//测试通过id更新数据
@test
public void testupdatebyid(){
    user user=new user();
    user.setuserid(1);//更新id=?的数据
    //更新内容,可多个
    user.setusername("心态");
    user.setuseremail("3052273528@qq.com");
    int result = usermapper.updatebyid(user);
    system.out.println(result);

}

3.运行上面的方法得出结果,查看生成的sql语句:

如下图所示,可看到sql语句把表中的user_id字段作为条件,对user表中的user_name、user_email字段的值进行修改。

4.查询修改结果调用通过id查询的方法查询user_id=1的表信息是否发生改变。

//测试通过id查询
    @test
    public void testselectbyid(){
        user user = usermapper.selectbyid(1l);
        system.out.println(user);
    }

效果如下图所示,可看到用户名和邮箱已经变为了修改后的值,修改成功!:

二、条件更新

在做条件更新时我们要用到mp中的update方法,先来看下源码:要传入2个参数,第一个是实体,就是要进行修改的数据。

第二个传入的是wrapper是要进行更新的条件。

int update(@param("et") t entity, @param("ew") wrapper<t> updatewrapper);

2.1 使用querywrapper进行条件更新

我们先测试querywrapper对数据进行条件更新:

在测试类中编写testupdateqw()方法,修改用户状态为1的用户名改为(心态还需努力呀~)和邮箱改为(2132444@qq.com)。

我们把要更新的数据放到user类里,条件就需要用到querywrapper,首先需要new出来,然后用.eq调用方法,eq方法里也有两个参数,第一个是表字段名,第二个是该字段的值

如下图所示:

然后即可写出该方法的内容:

//根据条件更新querywrapper用法
    @test
    public void testupdateqw(){
        user user=new user();
        user.setusername("心态还需努力呀~");
        user.setuseremail("2132444@qq.com");
        querywrapper<user> wrapper=new querywrapper<>();
        wrapper.eq("user_status","1");
        int result= usermapper.update(user, wrapper);
        system.out.println("result=> "+result);
    }

查看运行结果,通过生成的sql代码,可看出和我们编写的代码一样,条件是user_status字段,要修改的字段是user_name、user_email值。

注:再次强调eq方法中的第一个参数是数据库表的字段,而不是属性名。

2.2 使用updatewrapper进行条件更新

这次我们测试updatewrapper对数据进行条件更新:

在测试类中编写testupdateuw()方法,修改用户状态为1的用户名改为(心态)和邮箱改为(8888888@qq.com)。

要修改的数据和条件都要放到updatewrapper,首先需要new出来,然后用.set调用方法,set方法里也有两个参数,第一个是表字段名,第二个是该字段的值。如下图所示:

但在写update参数时,因user设置值的功能被updatewrapper实现了,所以第一个参数为null即可,代码如下:

//根据条件更新updatewrapper用法
    @test
    public void testupdateuw(){
        updatewrapper<user> wrapper=new updatewrapper<>();
        wrapper.set("user_name","心态").set("user_email","8888888@qq.com")//更新的数据
                .eq("user_status","1");//更新的条件
        int result= usermapper.update(null, wrapper);
        system.out.println("result=> "+result);
    }

运行效果图,可看到和上面方法生成的sql语句是一样的,也能进行更新操作:

注:强调eq方法中的第一个参数是数据库表的字段,而不是属性名。 updatewrapper中的set方法也是一样的。

总结

更新操作也是我们在实际写代码中必不可少的,掌握mp的更新操作,不管是通过id更新还是条件更新中的querywrapper、updatewrapper来更新。学会的话会很方便以后的开发,节省大量的时间。

虽说条件更新中这两个方法实现的结果一样,但最好都掌握,都了解每个方法的用法。

在实际编写项目时习惯用哪个看个人。这也是更新操作的全部内容。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com