mybatis plus3一些最佳实践及LambdaWrapper

数据库管理及表结构设计:

  • 初始化:Navicat建立逻辑模型;
  • 导入:若需要对已有结构进行调整则在模型设计界面选择:文件->从数据库导入;
  • 设计:建立需要的表,变更,保存;
  • 提交:提交表结构变更至数据库,保存后在模型设计界面选择:文件->同步到数据库;

标准pojo、mapper生成:使用IDEA旗舰版及MybatisX插件,在最右边数据库页签配置数据源,右键需要生成pojo和mapper的表选择MybatisX-Genarator,配置模块路径及基础包路径,next,选择mybatis-plus3及lombok,若需要localdatetime则选择JSR310,finish

mapper调用及LambdaWrapper:
自动生成的mapper若要在Service中调用需要添加@Mapper和@Component

LambdaWrapper使用场景(新增不需要用wrapper,直接调用mapper.insert())
包括LambdaQueryWrapper、LambdaQueryChainWrapper、LambdaUpdateWrapper、LambdaUpdateChainWrapper
LambdaQueryWrapper用于构造Wrapper,通过mapper方法调用wrapper,支持删查改;
LambdaQueryChainWrapper直接调用.one()、.list()或.page(),简化查询
UpdateWrapper设置完筛选条件后调用.set()设置需要修改的列和修改后的值
LambdaUpdateWrapper通过.set()免去在mapper.update()第一个参数创建对象,设置为null,简化修改
LambdaUpdateChainWrapper直接调用.update(),简化修改

LambdaQueryWrapper更新示例
参考链接:https://www.cnblogs.com/-mzh/p/12876463.html
创建实体
TourAlbumDownload tourAlbumDownload = new TourAlbumDownload();
String orderSn = OrderSn.getOrderSn();
更新其中的字段
baseMapper.update(tourAlbumDownload, new LambdaQueryWrapper()
.eq(TourAlbumDownload::getDownloadOpenid, tourAlbumDownloadDTO.getDownloadOpenid())
.eq(TourAlbumDownload::getTournamentId, tourAlbumDownloadDTO.getTournamentId())
.in(TourAlbumDownload::getAlbumItemId, tourAlbumDownloadDTO.getIds())
);
tourAlbumDownload实体中字段有值的更新 其他不更新
LambdaQueryWrapper是更新条件

posted @ 2022-04-26 15:24  tanjr  阅读(2861)  评论(0编辑  收藏  举报