MyBatis-Plus(為簡化開發而生)

一、MyBatis-Plus概述

官網:?baomidou.com

MyBatis-Plus(簡稱 MP) 在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。

(1)單表操作

不需要編寫sql語句,封裝方法,使用封裝的這些方法方便實現

(2)復雜查詢或者多表查詢

仍需編寫SQL語句實現

(3)大致步驟

①創建數據庫、創建表、添加記錄

②創建SpringBoot工程,引入MP相關依賴

<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>

③SpringBoot創建配置文件,指定操作數據庫路徑

#mysql數據庫連接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

④創建SpringBoot工程啟動類

⑤創建操作表對應實體類

⑥創建Mapper,繼承BaseMapper,指定對應實體類

?

二、CRUD

(1)在官網可查注解用法,以下列舉常用注解:

①????????@TableName(" "):相同時可不寫

?

②????????@TableId主鍵策略

?

?

③????????@TableField(" ")?

?

?(2)單表操作時使用baseMapper已封裝好的方法進行crud

CRUD:

@SpringBootTest
public class MpDemo1 {//注入mapper@Autowiredprivate UserMapper userMapper;//1 查詢所有記錄 selectList@Testpublic void findAll() {List<User> list = userMapper.selectList(null);list.forEach(user->{System.out.println(user.getName()+":"+user.getAge());});}//2 添加操作insert@Testpublic void addUser() {//創建對象,設置值User user = new User();user.setName("東方不敗");user.setAge(30);user.setEmail("dfbb@atguigu.com");//調用方法int rows = userMapper.insert(user);System.out.println(rows);System.out.println(user);}//3 根據id查詢@Testpublic void getUserById() {User user = userMapper.selectById(1L);System.out.println(user);}//4 修改操作@Testpublic void updateUser() {//根據id查詢User user = userMapper.selectById(1L);//設置修改值user.setName("岳不群");user.setAge(50);//調用方法完成修改int rows = userMapper.updateById(user);System.out.println(rows);}//5 刪除操作@Testpublic void deleteUser() {userMapper.deleteById(2L);}//6 條件查詢}

刪除操作:?

?

條件查詢:

//select * from user where name=? and age=?
@Test
public void select1() {//封裝條件對象LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.eq(User::getName,"Tom");wrapper.eq(User::getAge,28);//調用方法List<User> list = userMapper.selectList(wrapper);list.forEach(user->{System.out.println(user.getName()+":"+user.getAge());});
}//select * from user where age>=28
@Test
public void select2() {LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.ge(User::getAge,28);//調用方法List<User> list = userMapper.selectList(wrapper);list.forEach(user->{System.out.println(user.getName()+":"+user.getAge());});
}//select * from user name like ?
@Test
public void select3() {LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.like(User::getName,"m");//調用方法List<User> list = userMapper.selectList(wrapper);list.forEach(user->{System.out.println(user.getName()+":"+user.getAge());});
}

?

三、主鍵策略

默認策略:都是數字

uuid值:數字和字母

四、分頁查詢

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62491.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62491.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62491.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入解析 C++11 的 `std::atomic`:誤區、性能與實際應用

在現代 C 開發中&#xff0c;std::atomic 是處理多線程同步時的重要工具之一。它通過提供原子操作保證了線程安全&#xff0c;但在實際使用時卻隱藏著許多不為人知的陷阱和性能影響。本篇文章將帶你深入理解 std::atomic 的使用方式、潛在問題&#xff0c;以及如何正確應用于多…

芋道源碼,芋道sql,yudao,yudao-vue-pro拒絕割韭菜

芋道的開發指南實際上只需要小小的操作就可以觀看啦 為了避免被割韭菜 我們可以使用插件去進行解鎖文檔 項目地址 otomayss/free-yd (github.com)[這里是圖片002]https://github.com/otomayss/free-yd

Mac軟件推薦

Mac軟件推薦 截圖SnipasteXnipBob 快捷啟動Raycast 系統檢測Stats 解壓縮The UnarchiverKeka&#xff08;付費&#xff09; 視頻播放IINA 視頻下載Downie&#xff08;付費&#xff09; 屏幕劉海TopNotchMediaMate&#xff08;付費&#xff09;NotchDrop&#xff08;付費&#x…

【ETCD】【源碼閱讀】 深入解析 raftNode.start`函數:Raft 核心啟動邏輯剖析

raftNode.start方法 是 etcd 中 Raft 模塊的核心啟動點&#xff0c;其職責是管理 Raft 狀態機的狀態變遷、日志處理及集群通信等邏輯。通過對源碼的逐行分析&#xff0c;我們將全面揭示其運行機制&#xff0c;探討其設計背后的分布式系統理念。 函數核心結構 raftNode.start 方…

車站值班員題庫

1. 聯系用手信號顯示十、五、三車距離信號中的“三車”&#xff08;約33m&#xff09;信號時&#xff0c;晝間的顯示方式為展開的綠色信號旗單臂平伸下壓 &#xff08; 一 &#xff09;次。J442 2. 聯系用手信號顯示股道號碼時&#xff0c;晝間右臂向上直伸&#xff0c…

BI中場戰事:國外廠商退,國產廠商進

從沉睡的黃金到經濟的新寵&#xff0c;數據要素正上演華麗轉身。 近年來&#xff0c;數字經濟的長驅向前&#xff0c;離不開數據要素價值釋放所帶來的持續動力。作為第五大生產要素&#xff0c;數據要素的價值釋放需要從數據采集、傳輸到存儲、治理&#xff0c;再到分析和可視…

2024年華中杯數學建模C題基于光纖傳感器的平面曲線重建算法建模解題全過程文檔及程序

2024年華中杯數學建模 C題 基于光纖傳感器的平面曲線重建算法建模 原題再現 光纖傳感技術是伴隨著光纖及光通信技術發展起來的一種新型傳感器技術。它是以光波為傳感信號、光纖為傳輸載體來感知外界環境中的信號&#xff0c;其基本原理是當外界環境參數發生變化時&#xff0c…

【LeetCode每日一題】LeetCode 209.長度最小的子數組

LeetCode 209.長度最小的子數組 題目描述 給定一個正整數數組 nums 和一個正整數 target&#xff0c;找出連續子數組的最小長度&#xff0c;使得子數組的和大于或等于 target。如果不存在符合條件的子數組&#xff0c;返回 0。 Java 實現代碼 public class Solution {publi…

【openwrt】openwrt-21.02 基于IP地址使用ipset實現策略路由操作說明

openwrt版本信息 DISTRIB_ID=OpenWrt DISTRIB_RELEASE=21.02-SNAPSHOT DISTRIB_REVISION=r0-6bf6af1d5 DISTRIB_TARGET=mediatek/mt7981 DISTRIB_ARCH=aarch64_cortex-a53 DISTRIB_DESCRIPTION=OpenWrt 21.02-SNAPSHOT r0-6bf6af1d5 DISTRIB_TAINTS=no-all busybox override …

【H2O2|全棧】MySQL的基本操作(三)

目錄 前言 開篇語 準備工作 案例準備 多表查詢 笛卡爾積 等值連接 外連接 內連接 自連接 子查詢 存在和所有 含于 分頁查詢 建表語句 結束語 前言 開篇語 本篇繼續講解MySQL的一些基礎的操作——數據字段的查詢中的多表查詢和分頁查詢&#xff0c;與單表查詢…

從單體到微服務:如何借助 Spring Cloud 實現架構轉型

一、Spring Cloud簡介 Spring Cloud 是一套基于 Spring 框架的微服務架構解決方案&#xff0c;它提供了一系列的工具和組件&#xff0c;幫助開發者快速構建分布式系統&#xff0c;尤其是微服務架構。 Spring Cloud 提供了諸如服務發現、配置管理、負載均衡、斷路器、消息總線…

yarn : 無法加載文件 C:\Users\L\AppData\Roaming\npm\yarn.ps1,因為在此系統上禁

關于執行安裝yarn命令后執行yarn -v報錯&#xff1a; 先確認執行安裝yarn命令是否有誤 # 安裝yarn npm install yarn -g 終端輸入set-ExecutionPolicy RemoteSigned 當然如果yarn -v仍然執行失敗&#xff0c;考慮使用管理員方式運行IDEA&#xff0c; 注&#xff1a;如上操作…

centos 常見問題處理

免密登錄配置 # 在當前機器下 執行命令 生成 私鑰和公鑰 ~/.ssh 目錄下 ssh-keygen -t rsa # 執行如下命令 把公鑰 放到 對應機器上的 ~/.ssh/authorized_keys ssh-copy-id 172.17.68.220 # 如此 兩臺機器兩兩配置 centos ssh連接慢 vim /etc/ssh/sshd_config # UseD…

java全棧day12-后端Web實戰(IOC+DI)

前言&#xff1a;前面的基礎知識了解后進入實戰篇&#xff0c;從以下四個方面進行準備 一、開發規范 1.1前后端分離開發 前言回顧 二、Restful風格 引言&#xff1a;前端與后端在進行交互的時候&#xff0c;所使用的url風格叫Restful。 2.1概述 小結 2.2環境準備 2.2.1apif…

鏈式設計模式——裝飾模式和職責鏈模式

一、裝飾模式 1、概述 動態地給一個對象添加一些額外的職責&#xff0c;就增加功能來說&#xff0c;裝飾模式比生成子類更為靈活。 ConcreteComponent &#xff1a;是定義了一個具體的對象&#xff0c;可以給這個對象添加一些職責&#xff1b;Decorator &#xff1a;裝飾抽象…

Cmake+基礎命令

一、版本要求&#xff1a; 檢查 cmake 版本號的最低要求&#xff0c;不滿足條件時報錯。 cmake_minimum_required(VERSION <version>)參數&#xff1a; version&#xff1a;最低要求的版本號 例子&#xff1a; # 最低要求安裝3.21版本的cmake cmake_minimum_required…

Java——容器(單例集合)(上)

一 容器介紹 容器&#xff0c;是用來容納物體、管理物體。生活中,我們會用到各種各樣的容器。如鍋碗瓢盆、箱子和包等 程序中的“容器”也有類似的功能&#xff0c;用來容納和管理數據。比如&#xff0c;如下新聞網站的新聞列表、教育網站的課程列表就是用“容器”來管理 視頻…

word poi-tl 表格功能增強,實現表格功能垂直合并

目錄 問題解決問題poi-tl介紹 功能實現引入依賴模版代碼效果圖 附加&#xff08;插件實現&#xff09;MergeColumnData 對象MergeGroupData 類ServerMergeTableData 數據信息ServerMergeTablePolicy 合并插件 問題 由于在開發功能需求中&#xff0c;word文檔需要垂直合并表格&…

OpenCV相機標定與3D重建(11)機器人世界手眼標定函數calibrateRobotWorldHandEye()的使用

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 計算機器人世界/手眼標定&#xff1a; w T b _{}^{w}\textrm{T}_b w?Tb? 和 c T g _{}^{c}\textrm{T}_g c?Tg?。 cv::calibrateRobotWorldHa…

GPT系列模型簡要概述

GPT-1&#xff1a;&#xff08;0.117B參數量&#xff0c;0.8B words預訓練數據) 動機&#xff1a; 在RNN和Transformer之間&#xff0c;選擇了后者。 和《All your need is Attention》翻譯模型的Encoder-Decoder架構相比&#xff0c;只保留Decoder&#xff0c;因此去掉了Cross…