mybatis plus常用操作

1.条件更新指定字段

java 复制代码
UpdateWrapper<ExamParticipation> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda()
    .eq(ExamParticipation::getId, id)
    .set(ExamParticipation::getField1, value1)
    .set(ExamParticipation::getField2, value2)
    .set(ExamParticipation::getField3, value3);

int rows = examParticipationMapper.update(null, updateWrapper);

2.条件批量更新

MyBatis-Plus 也支持批量更新操作。你可以使用 UpdateWrapper 类的 in 方法来指定批量更新的条件。

以下是一个示例代码,演示如何使用 MyBatis-Plus 进行批量更新:

java 复制代码
List<Long> ids = Arrays.asList(1L, 2L, 3L);
List<String> values = Arrays.asList("value1", "value2", "value3");

UpdateWrapper<ExamParticipation> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda()
    .in(ExamParticipation::getId, ids)
    .set(ExamParticipation::getField1, values);

int rows = examParticipationMapper.update(null, updateWrapper);

3.批量新增

MyBatis-Plus 也支持批量新增操作。你可以使用 MyBatis-Plus 提供的 saveBatch 或 saveBatchSomeColumn 方法来实现批量新增。

以下是一个示例代码,演示如何使用 MyBatis-Plus 进行批量新增:

java 复制代码
List<ExamParticipation> examParticipations = new ArrayList<>();
examParticipations.add(new ExamParticipation(field1, field2, field3));
examParticipations.add(new ExamParticipation(field1, field2, field3));
examParticipations.add(new ExamParticipation(field1, field2, field3));

boolean success = examParticipationService.saveBatch(examParticipations);

上述代码中,ExamParticipation 是实体类,examParticipationService 是对应的 Service 类。

首先,创建一个 List 对象,包含要新增的实体对象,每个实体对象表示一条记录。

接下来,调用 saveBatch 方法来执行批量新增操作。参数为实体对象的列表。

saveBatch 方法将会返回一个布尔值,表示批量新增操作是否成功。

4.批量新增部分字段

另外,如果你只想新增部分字段,可以使用 saveBatchSomeColumn 方法,

java 复制代码
List<ExamParticipation> examParticipations = new ArrayList<>();
examParticipations.add(new ExamParticipation(field1, field2, field3));
examParticipations.add(new ExamParticipation(field1, field2, field3));
examParticipations.add(new ExamParticipation(field1, field2, field3));

boolean success = examParticipationService.saveBatchSomeColumn(examParticipations);

5.联表查询

MyBatis-Plus 支持联表查询操作。你可以使用 MyBatis-Plus 提供的方法来实现联表查询,其中包括使用 @TableField 注解进行关联映射,以及使用 @TableName 注解指定表名。

以下是一个示例代码,演示如何使用 MyBatis-Plus 进行联表查询:

java 复制代码
public List<Order> getOrdersWithUser() {
    return orderMapper.selectList(new QueryWrapper<Order>()
        .select("order.*", "user.user_name")
        .leftJoin("user", "user.id = order.user_id")
        .eq("order.status", "paid")
    );
}
相关推荐
魔道不误砍柴功1 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2341 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨1 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
种树人202408191 小时前
如何在 Spring Boot 中启用定时任务
spring boot
测开小菜鸟3 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
Ai 编码助手4 小时前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
P.H. Infinity4 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天4 小时前
java的threadlocal为何内存泄漏
java
陈燚_重生之又为程序员4 小时前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle4 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express