mybatis plus常用操作
2024-01-09 19:45:24
1.条件更新指定字段
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 进行批量更新:
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 进行批量新增:
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 方法,
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 进行联表查询:
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")
);
}
文章来源:https://blog.csdn.net/weixin_43158695/article/details/135487091
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!