快速上手Mybatis-Plus 入門案例

寫在前面在這里插入圖片描述🛫更多知識總結見Mybatis-Plus專欄
🚕內容總結自尚硅谷楊博超老師的視頻
🚒博主對于該知識尚在學習階段
🚄如果發現存在問題請毫不吝嗇的指出
🚀🚀扎哇太棗糕的博客首頁🚀🚀

文章目錄

  • 1 初識Mybatis-Plus
  • 2 入門案例

1 初識Mybatis-Plus

??MyBatis-Plus簡稱 MP,是一個 MyBatis的增強工具,在MyBatis的基礎上只做增強不做改變,為簡化開發、提高效率而生。MyBatis-Plus有很多的特點支持很多的標準數據庫,具體等學到相關特性的時候再去詳細了解。MyBatis-Plus的官方文檔:https://baomidou.com/
??關于MyBatis-Plus的框架結構,也就是框架的底層實現官方文檔給出如下試圖,簡單總結來就是:掃描實體類,通過反射抽取實體類中的屬性并分析其與表中字段之間的關系,最后調用MyBatis-Plus提供的一堆方法生成SQL語句注入到MyBatis的容器中,從而實現不同的增刪改查功能
在這里插入圖片描述

2 入門案例

前期環境準備

第一步: 創建數據庫表并插入數據

CREATE TABLE `user` ( `id` bigint(20) NOT NULL COMMENT '主鍵ID', `name` varchar(30) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT NULL COMMENT '年齡', `email` varchar(50) DEFAULT NULL COMMENT '郵箱', PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO user (id, name, age, email) VALUES 
(1, 'Jone', 18, 'test1@baomidou.com'), 
(2, 'Jack', 20, 'test2@baomidou.com'), 
(3, 'Tom', 28, 'test3@baomidou.com'), 
(4, 'Sandy', 21, 'test4@baomidou.com'), 
(5, 'Billie', 24, 'test5@baomidou.com');

第二步: 使用Spring Initializr快速創建一個SpringBoot工程
在這里插入圖片描述刪除選中的不必要文件以及文件夾在這里插入圖片描述第三步: pom文件導入相關依賴

<!--mybatis-的場景啟動器-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency><!--lombok簡化實體類開發,如果之前沒有下載過依賴的同名插件的話需要下載安裝,然后重啟一下idea-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency><!--數據庫連接驅動-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.32</version><scope>runtime</scope>
</dependency><!--整合druid的數據源-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.17</version>
</dependency>

第四步: 配置文件改后綴為.yml并配置數據源

spring:# 數據源的各種配置datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatis_plususername: rootpassword: 123456# Mybatis-Plus開啟日志打印
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

各層代碼編寫

domain層實體類

/*** @author : mereign* @date : 2022/3/13 - 14:28* @desc : user實體類*/// 在編譯期間生成user類的全參構造方法
@AllArgsConstructor
// 在編譯期間生成user類的無參構造方法
@NoArgsConstructor
// 在編譯期間生成封裝屬性的setter、getter方法,并重寫了toString和equals、hashCode方法
@Data
public class User {private Long id;private String name;private Integer age;private String email;}

mapper層繼承接口

/*** @author : mereign* @date : 2022/3/13 - 15:43* @desc : 創建mapper接口繼承BaseMapper接口并傳user泛型*/// spring框架創建mapper接口相對應的接口實現類
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

測試類

/*** @author : mereign* @date : 2022/3/13 - 15:50* @desc : 測試類簡單測試mp的查詢方法*/@SpringBootTest
public class MybatisPlusTest {@AutowiredUserMapper mapper;@Testpublic void selectListTest() {// 通過條件構造器查詢到一個list集合,如果沒有條件的話參數設置為nullList<User> users = mapper.selectList(null);users.forEach(System.out::println);}
}

入門案例查詢結果在這里插入圖片描述入門案例中的小知識點

??測試類中注入mapper組件的時候代碼會報紅,但是并不會影響最終的程序執行結果。原因是:@Mapper接口將該接口動態生成的代理類注入到IOC容器中起相應的作用,所以使用自動注入mapper的時候會報紅在容器中找不到這個接口組件。解決方法:在mapper接口上加@Repository注解將類或接口標注為一個持久層組件。這樣的話一個注解用來起作用,一個注解用來注入的時候找到接口組件防止報紅
??生成的SQL語句中,表名為mapper接口傳入的泛型首字母小寫,表中字段名為泛型類的封裝屬性,如果需要修改實體類綁定的表名的話需要在實體類上使用@TableName注解

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

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

相關文章

交換機分布緩存_網絡交換機緩存在數據中心的作用

什么產生了緩存&#xff1f;網絡交換機要配置多少緩存才夠用&#xff1f;緩存容量是否有標準可以衡量&#xff1f; 當網絡交換機接口收到超出其所能處理的流量后&#xff0c;它會選擇要么將其緩存&#xff0c;或者將其丟棄。 緩存通常都是因為網絡接口速率不同造成的&#xff0…

黑蘋果 選擇語言 點不了_什么是天然的“黑鉆”?—科普貼

天然黑鉆也被成為“碳酸氫”&#xff0c;具有與白鉆相同的化學成分&#xff0c;然而黑鉆石的晶體結構是不同的&#xff0c;這意味著它們由許多小晶體組成&#xff0c;它們以隨機的形式粘在一起&#xff0c;而不是一個具有可識別自然線的固體錐形。天然黑鉆石有極高的含物&#…

sim卡沒壞但蘋果手機無服務_解決手機插SIM卡后都顯示“無SIM卡”的故障問題

故障現象顧客描述手機插SIM卡后都顯示“無SIM卡”。維修過程引起插入SIM卡卻顯示“無SIM卡”的故障&#xff0c;除了可能是SIM卡座的供電、時鐘、復位及SIM卡插入檢測信號不正常導致外&#xff0c;還有可能是基帶不正常導致的。插上手機卡&#xff0c;左上角提示“無SIM卡”&am…

Mybatis-Plus實現簡單的增刪改查 實體類上的注解

寫在前面&#x1f6eb;更多知識總結見Mybatis-Plus專欄 &#x1f695;內容總結自尚硅谷楊博超老師的視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客首頁&#x1f680;&#x1f680;…

webpack 讀取文件夾下的文件_webpack基本介紹及使用

1.什么是webpackwebpack是一個前端資源加載/打包工具。它根據模塊的依賴關系進行靜態分析&#xff0c;然后將這些模塊按照指定的規則生成對應的靜態資源。從上圖看出&#xff0c;webpack可以將多種靜態資源js&#xff0c;css&#xff0c;less轉換成一個靜態文件&#xff0c;減少…

conda失敗說沒有寫權限_愛情中,為什么男生表白失敗,女生還說可以繼續做朋友,想過沒有...

在愛情中&#xff0c;不是每個男生都是幸運的&#xff0c;也不是每次的表白都是如你所愿的。有成功總有失敗&#xff0c;成功是喜悅的&#xff0c;但是失敗卻是痛苦的。不過有的時候男生和女生表白以后&#xff0c;女生對男生說了這樣的一段&#xff0c;其實我希望以后我們還是…

Mybatis-Plus中Wrapper條件構造器的使用

寫在前面 &#x1f6eb;更多知識總結見Mybatis-Plus專欄 &#x1f695;內容總結自尚硅谷楊博超老師的視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客首頁&#x1f680;&#x1f680…

springboot設置默認值_線上Bug無法復現?老司機教你一招,SpringBoot遠程調試不用愁!...

前言在部署線上項目時&#xff0c;相信大家都會遇到一個問題&#xff0c;線上的 Bug 但是在本地不會復現&#xff0c;多么無奈。此時最常用的就是取到前端傳遞的數據用接口測試工具測試&#xff0c;比如 POSTMAN&#xff0c;復雜不&#xff0c;難受不&#xff1f;今天陳某教你一…

Mybatis-Plus的分頁 樂觀鎖插件 通用枚舉 多數據源

寫在前面&#x1f6eb;更多知識總結見Mybatis-Plus專欄 &#x1f695;內容總結自尚硅谷楊博超老師的視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客首頁&#x1f680;&#x1f680;…

學python哪個網站好-有哪些值得推薦的Python學習網站|

現在那個網站可以學習python爬蟲&#xff1f; 為大家分享Python學習經驗: 1、尋找一本Python書籍&#xff0c;要求淺顯易懂、全面細致程較好&#xff0c;專注于這一本&#xff0c;從頭開始研究&#xff0c;把整本書掌握透徹。 2、找一個項目練手&#xff0c;熟悉基礎后&#xf…

等待的操作過時_不會過時的6種網站seo優化操作

SEO優化一直在變化&#xff0c;百度和谷歌的算法也在不斷的迭代更新&#xff0c;所以競爭永遠不會停止。今天小編就來給大家分享一下&#xff0c;6種不會過時的網站seo優化操作。1.保持正常優化為網站訪客提供高質量的內容、卓越的用戶體驗和安全性以及卓越的技術網站。這可能需…

java的for循環取出數據只是拿到最后一個_一問SQL優化就無從藏身?那只是你對原理的精髓掌握不深

?曾幾何時&#xff0c;我信誓旦旦的認為只要 SQL 寫的好&#xff0c;面試過程永不倒。結果在一次又一次的征途中&#xff0c;「最終還是以完敗落下帷幕」。結果都源于注重使用而忽略原理&#xff0c;從而不知也不了解「SQL」優化應如何面對。讀文的你&#xff0c;如今可有這樣…

SpringBoot前后端分離解決跨域問題的三種解決方案

&#x1f680;&#x1f680;扎哇太棗糕的博客首頁&#x1f680;&#x1f680;** 文章目錄&#x1f34a;什么是跨域&#x1f34a;跨域問題的解決策略&#x1f34a;三種解決方法&#x1f34a;什么是跨域 想要知道什么是跨域的話&#xff0c;我們可以通過一個小案例簡單了解一下跨…

ant design vue 樹形控件_官宣!vue.ant.design 低調上線

點擊右上方&#xff0c;關注開源中國OSC頭條號&#xff0c;獲取最新技術資訊官宣&#xff01;官宣&#xff01;官宣&#xff01;是的&#xff0c;你沒看錯就是那個 https://vue.ant.design。至此&#xff0c;Ant Design 已經全面覆蓋了 React、Angular、Vue 三大前端框架&#…

哪款筆記本電腦好_掃地機器人哪個牌子好?口碑最好的掃地機器人

隨著智能家居的普及&#xff0c;讓我們的生活變得越來越智能。掃地機器人的出現完美解決了寵物的毛發問題&#xff0c;為自己騰出了大量的時間。掃地機器人絕對能提升你的生活品質&#xff0c;通過機器內建的智能清潔模式、自定義規劃區域進行打掃&#xff0c;使用手機APP進行控…

使用mybatisplus的通用枚舉實現存儲顯示相分離

狡兔尚且三窟&#xff0c;多學一招總沒錯吧&#xff1f; &#x1f680;&#x1f680;扎哇太棗糕的博客首頁&#x1f680;&#x1f680; &#x1f30f; 拋出問題 如果讓你實現這么一個功能&#xff1a;將性別使用數字存儲到數據庫中&#xff0c;但是前端需要獲取到的是具體的性…

wifi卡慢延遲高_家里WiFi特別卡,網絡延遲高,可能不是網速的問題

原標題&#xff1a;家里WiFi特別卡&#xff0c;網絡延遲高&#xff0c;可能不是網速的問題隨著科技走向我們的身邊&#xff0c;網絡的覆蓋力度也是越來越大&#xff0c;相信很多人的家中都是有安裝WiFi的&#xff0c;然后往往在家中使用的過程中都會碰到這樣的情況&#xff0c;…

voc2007數據集_【目標檢測數據集】PASCAL VOC制作

【VOC20072012】數據集地址&#xff1a;https://pjreddie.com/projects/pascal-voc-dataset-mirror/PASCAL VOC為圖像識別和分類提供了一整套標準化的優秀的數據集&#xff0c;用于構建和評估用于圖像分類&#xff08;Classification&#xff09;&#xff0c;檢測&#xff08;O…

JDK和JRE的區別?main方法的注意點?強制和自動類型轉換?

&#x1f4a1;涉及的知識點速通&#x1f6eb; JDK和JRE傻傻分不清?&#x1f6eb; HelloWorld的輸出都經歷了啥&#xff1f;&#x1f6eb; Java的三個版本都是啥&#xff1f;&#x1f6eb; 關于main方法你都知道啥&#xff1f;&#x1f6eb; 強制and自動類型轉換都是啥?各位小…

java將date類型轉成yyyymmdd_java中的Date怎么轉換成YYYYMMDD形式?

展開全部SimpleDateFormat inSdf new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);創建SimpleDateFormat對象的時候使用帶Locale的構e69da5e6ba9062616964757a686964616f31333365633938造參數因為你的星期和月份是用E文寫的 所以parse回來的時候自…