Mybatis-plus的updateById()方法特性记录

给大家推荐一款好用的优快云云服务,新人首购折扣哦,点击下图跳转:
优快云开发云


标题Mybatis-plus的updateById()方法特性记录

使用Mybatis-plus的updateById()方法来更新一条记录时:只会更新不为null的字段,为null的字段会不变。在真实的线上环境是这样的。

所以要是该方法,建议:new一个新的实体,将id赋值,然后把需要更新的字段set下。

如果真的需要把一个字段设置为null,可以在该字段上加上注解:

@TableField(updateStrategy = FieldStrategy.IGNORED)

让mybatisplus忽略判断。该字段默认的模式是NOT_NULL,即通过接口更新数据时数据为NULL值时将不更新进数据库。

### MyBatis-Plus 方法简写及其使用说明 MyBatis-Plus 是一种基于 MyBatis 的增强工具,其核心目标在于通过提供一系列内置的功能来简化开发流程并提升效率[^1]。其中,方法简写是 MyBatis-Plus 提供的重要特性之一,它允许开发者以更简洁的方式实现常见的 CRUD 操作。 #### 一、CRUD 方法简写概述 MyBatis-Plus 中的方法简写主要集中在 `BaseMapper` 接口中定义的基础方法上。这些方法无需额外配置即可直接调用,从而减少了手写 SQL 和 Mapper 文件的需求。以下是常用的方法列表: | **方法名称** | **功能描述** | |----------------------|-----------------------------------------------------------------------------| | `insert(T entity)` | 插入一条记录,返回受影响的行数。如果主键存在,则会自动填充主键值[^2]。 | | `deleteById(Serializable id)` | 根据主键删除单条记录。 | | `updateById(T entity)` | 更新指定 ID 对应的数据。 | | `selectById(Serializable id)` | 查询单条数据,根据主键字段进行查询。 | | `selectList(Wrapper<T> queryWrapper)` | 根据条件构造器封装的条件查询多条数据。 | 以上方法均可以通过继承 `BaseMapper` 自动获得支持,无需手动编写 XML 配置文件或复杂逻辑代码[^4]。 --- #### 二、条件构造器的应用场景 除了基础的 CRUD 方法外,MyBatis-Plus 还引入了强大的条件构造器(`QueryWrapper` 或 `UpdateWrapper`),用于动态构建复杂的查询和更新条件。例如: ```java // 创建 QueryWrapper 实例 QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("age", 20).like("name", "张三"); // 调用 selectList 方法获取符合条件的结果集 List<User> users = userMapper.selectList(wrapper); ``` 上述代码片段展示了如何利用条件构造器设置等值匹配 (`eq`) 和模糊匹配 (`like`) 条件,并最终完成查询操作[^3]。 --- #### 三、官方文档中的示例教程 为了更好地理解 MyBatis-Plus方法简写及其实现方式,可以参考以下来自官方文档的经典案例: ##### 示例 1:插入新记录 假设有一个名为 `User` 的实体类,可通过以下代码轻松完成新增操作: ```java User user = new User(); user.setName("李四"); user.setAge(28); int result = userMapper.insert(user); // 返回影响的行数 System.out.println(result > 0 ? "插入成功" : "插入失败"); ``` ##### 示例 2:批量删除 当需要按多个条件删除时,可以直接结合条件构造器实现: ```java QueryWrapper<User> deleteWrapper = new QueryWrapper<>(); deleteWrapper.gt("age", 30).isNull("email"); int rowsAffected = userMapper.delete(deleteWrapper); System.out.println(rowsAffected + " 行被删除成功!"); ``` --- #### 四、日志调试辅助学习 在实际开发过程中,建议开启 MyBatis-Plus 日志功能以便观察生成的 SQL 语句以及运行结果。具体配置如下所示: ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` 启用该配置后,控制台将打印每次执行的操作细节,有助于排查潜在问题。 --- #### 五、总结 通过对 MyBatis-Plus 方法简写的深入探讨可知,这一框架极大程度地降低了传统 ORM 开发模式下的重复劳动强度。无论是简单的增删改查还是复杂的业务需求处理,都可以依赖于其丰富的 API 支持得以高效解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值