Mybatis-Plus的筆記

Mybatis-Plus其實是Mybatis的升級版,他簡化了原先mybatis需要手動寫CURD語句轉而繼承BaseMapper來實現。具體變化如下:

1,MyBatis-Plus簡介:MP,是mybatis的增強工具,是基于mybatis上開發的。

特點:

Maven坐標:

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

配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version><relativePath/></parent><groupId>com.itheima</groupId><artifactId>mp-demo</artifactId><version>0.0.1-SNAPSHOT</version><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

配置數據源:

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTCusername: rootpassword: root
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #開啟mp日志,將sql輸出到控制臺

2,CURD接口

我們只需要直接調用就好了:在ymi文件中加入

3,常用注解

@TableName()用來指定當前類對應的數據庫的表名

@TableFile()用來指定當前屬性在數據庫表中對應的字段

@TableId()用來指定當前屬性為數據庫表中的主鍵

示例:

public class User {@TableId(type = IdType.AUTO) //當前id屬性和表的主鍵字段id對應,并且設置主鍵生成策略為AUTOprivate Long id;
}

4,條件構造器(MyBatis-Plus的特色)

我們一般常用:QueryWrapper,UpdateWrapper和LembdaQueryWrapper,LembdaUpdateWrapper兩組條件構造器來進行查詢語句的構造和修改語句的構造

5,擴展功能

(1)邏輯刪除

(2)MP對于Service層的支持

我們只需要在XXService接口上繼承IService和XXServiceImpl接口上繼承ServiceImpl<使用的Mapper, 插入的實體(XX)>

在業務實現類中可以調用 ServiceImpl 中的 getBaseMapper 方法獲得對應的mapper對象

(3)代碼生成器

在生成器中我們一般使用了生成代碼之后還需要做一定的修改,比如生成器中生成的代碼并沒有給mapper加入@Mapper注解,還有需要注意的是在生成的實體類中可能主鍵生成的方法我們在配置文件中有設置,此時我們需要把實體類中的@TableId(type = IdType.AUTO)中括號里面的給注釋掉,從而實現我們使用自己的設置

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

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

相關文章

智駕未來,一觸即達——探索全新加油App的無限可能

一、引言 隨著科技的飛速發展&#xff0c;智能出行已成為現代生活的重要組成部分。為了滿足廣大駕駛者的需求&#xff0c;我們傾力打造了一款全新的加油App&#xff0c;旨在為您的駕駛旅程提供前所未有的便捷與智能體驗。 二、產品概述 我們的加油App不僅是一款導航工具&…

windows如何看是否支持多核并行

在Windows中查看是否支持多核并行處理&#xff0c;可以通過以下幾種方法&#xff1a; 使用任務管理器&#xff1a; 右鍵點擊任務欄空白處選擇“任務管理器”。 切換到“性能”標簽頁。 查看“處理器”一欄&#xff0c;如果看到多個處理器核心&#xff0c;并且每個核心旁邊顯…

每日一道算法題 有效括號序列

題目 有效括號序列_牛客題霸_牛客網 (nowcoder.com) Python 1長度必須為偶數 2就像開心消消樂一樣&#xff0c;一左一右就消掉。 class Solution:def isValid(self , s: str) -> bool:# write code here# flag[(),{},[]]# for _ in range(len(s)//2):# for i in fl…

以HMO模式為核心,平安健康穩健前行

自2014年成立以來&#xff0c;平安健康始終聚焦解決“看病難、看病貴、看病遠”的痛點&#xff0c;通過科技手段優化醫療服務流程&#xff0c;降低用戶就醫成本。經過數年的耕耘&#xff0c;平安健康已成功轉型為一站式健康管理平臺&#xff0c;打通了醫療、藥品、康復等多個環…

力扣每日一題 6/27 字符串 貪心

博客主頁&#xff1a;誓則盟約系列專欄&#xff1a;IT競賽 專欄關注博主&#xff0c;后期持續更新系列文章如果有錯誤感謝請大家批評指出&#xff0c;及時修改感謝大家點贊&#x1f44d;收藏?評論? 2734.執行子串操作后的字典序最小字符串【中等】 題目&#xff1a; 給你一…

Java中的異常處理:Checked與Unchecked的區別

Java中的異常處理&#xff1a;Checked與Unchecked的區別 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 異常處理概述 在Java編程中&#xff0c;異常處理是一…

MySQL定位CPU利用率過高的SQL方法

前言 當mysql CPU告警利用率過高的時候&#xff0c;我們應該怎么定位是哪些SQL導致的呢&#xff0c;本文將介紹一下定位的方法。 本文所使用的方法&#xff0c;前提是你可以登錄到Mysql所在的服務器&#xff0c;執行命令查看進程&#xff0c;當然讓數據庫管理員登錄執行也可以…

科研所文件數據很關鍵,外發圖紙如何控制?

圖紙是科研所整個科研周期中最重要的資料類型之一。這些圖紙主要用于描述和記錄研究過程中的各種設計、實驗裝置、設備或產品原型等。 首先&#xff0c;科研所在進行新技術、新產品或新方法的研發時&#xff0c;通常需要進行詳細的設計和規劃。在這個過程中&#xff0c;科研人員…

小區物業管理收費系統源碼小程序

便捷、透明、智能化的新體驗 一款基于FastAdminUniApp開發的一款物業收費管理小程序。包含房產管理、收費標準、家屬管理、抄表管理、在線繳費、業主公告、統計報表、業主投票、可視化大屏等功能。為物業量身打造的小區收費管理系統&#xff0c;貼合物業工作場景&#xff0c;輕…

怎樣求解一個系統的穩態輸出

要求解一個系統的穩態輸出&#xff0c;需要根據系統的類型&#xff08;如線性時不變系統、非線性系統等&#xff09;、輸入信號的性質&#xff08;如階躍信號、正弦信號等&#xff09;以及系統的描述方法&#xff08;如微分方程、狀態空間模型等&#xff09;。這里主要介紹線性…

數字黃金 vs 全球計算機:比特幣與以太坊現貨 ETF 對比

撰文&#xff1a;Andrew Kang 編譯&#xff1a;J1N&#xff0c;Techub News 本文來源香港Web3媒體&#xff1a;Techub News 比特幣現貨 ETF 的通過為許多新買家打開了進入加密貨幣市場的大門&#xff0c;讓他們可以在投資組合中配置比特幣。但以太坊現貨 ETF 的通過&#xf…

AI從業者怎么做Science?清華大學AIR周浩:從文本生成到蛋白質設計的跨界探索

近日&#xff0c;北京智源大會「AI for Science」分論壇上&#xff0c;清華大學智能產業研究院副研究員周浩以「面向科學發現的生成式人工智能」為主題展開演講&#xff0c; HyperAI超神經在不違原意的前提下&#xff0c;對周浩教授的深度分享進行了整理匯總。 周浩教授演講現場…

遠程過程調用(RPC)

Hi~&#xff01;這里是奮斗的小羊&#xff0c;很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~~ &#x1f4a5;&#x1f4a5;個人主頁&#xff1a;奮斗的小羊 &#x1f4a5;&#x1f4a5;所屬專欄&#xff1a;C語言 &#x1f680;本系列文章為個人學習…

數字AI化銀行數字化轉型實戰手冊銀行數字化轉型大客戶營銷銷售講師培訓師唐興通談存量客戶理財金融科技與場景化

推動銀行數字化轉型的五個關鍵因素 推動銀行數字化轉型的五個關鍵因素&#xff1a; 客戶體驗。為客戶提供便利和個性化是數字化轉型的關鍵因素。銀行應開發和實施創新的數字渠道&#xff0c;例如移動應用程序、網上銀行、聊天機器人等&#xff0c;以方便獲取金融服務并提高客戶…

基于yolo的物體識別坐標轉換

一、模型簡介: 1.1、小孔成像模型簡圖如下:不考慮實際相機中存在的場曲、畸變等問題 相對關系為: 為了表述與研究的方便,我們將像面至于小孔之前,且到小孔的距離仍然是焦距f,這樣的模型與原來的小孔模型是等價的 相對關系為: 二、坐標系簡介: **世界坐標系(world coo…

2021-2024高校畢業生的就業趨勢和變化分析

一、不同行業、地區和學歷層次的高校畢業生就業情況差異 行業差異&#xff1a; 教育培訓行業&#xff1a;受“雙減”政策影響&#xff0c;教育培訓機構吸納畢業生的數量明顯下降&#xff0c;畢業生面臨重新選擇。互聯網領域&#xff1a;互聯網企業的業務優化調整力度加大&…

徹底解決 macos中chrome應用程序 的 無法更新 Chrome 彈窗提示 mac自定義參數啟動 chrome.app

mac系統中的chrome app應用在每次打開是都會提示一個 “無法更新 Chrome Chrome 無法更新至最新版本&#xff0c;因此您未能獲得最新的功能和安全修復程序。” &#xff0c; 然而最新的chrome 程序似乎在某些情況下居然會出現 輸入和顯示不一致的情況&#xff0c;暫時不想升…

You編程__封裝ElementPlus通用組件(會持續更新...)

YOU編程__封裝ElementPlus通用組件&#xff08;會持續更新…&#xff09; 1、通用表格組件 CommonTable.vue <template><div><el-form :model"query" inline class"query-form"><el-form-item><el-input v-model"query…

htmlcss面試題總結

網絡中使用最多的圖片格式有哪些 jpg, png, svg,webp,bmp; 請簡述css盒子模型 盒子模型是指html的每個元素都像一個盒子&#xff0c;可以設置寬高&#xff0c;主要由content box&#xff0c;padding box&#xff0c;border&#xff0c; 和margin組成 視頻/音頻標簽的使用 …

js棧的隊列

// 定義 Queue 類 class Queue {constructor() {// 使用兩個棧來模擬隊列this.stack1 [];this.stack2 [];}// 入隊操作&#xff0c;將元素添加到隊列末尾enqueue(element) {// 將 stack1 中的元素移到 stack2while (this.stack1.length > 0) {this.stack2.push(this.stack…