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是更新條件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM