Mybatis Plus 增刪改查的實(shí)現(xiàn)(小白教程)
前言
在持久層框架中 mybatis 應(yīng)用比較多,而且比重在逐漸的上升。通常項(xiàng)目的組合是 SSM。mybatis 之所以火,是因?yàn)樗撵`活,使用方便,優(yōu)化比較容易。
mybatis 的直接執(zhí)行 sql 語句, sql 語句是寫在 xml 文件中,使用 mybatis 需要多個(gè) xml 配置文件,在一定程度上比較繁瑣。一般數(shù)據(jù)庫的操作都要涉及到CURD。
mybatis-plus 是在 mybatis 上的增強(qiáng),減少了 xml 的配置,幾乎不用編寫 xml就可以做到單表的 CURD,很是方便,極大提供了開發(fā)的效率。 我們寫程序目的就是讓生活更加簡(jiǎn)單。
什么是 mybatis-plus?
MyBatis-Plus(簡(jiǎn)稱 MP)是一個(gè) MyBatis 的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生。
MyBatis-Plus 在 MyBatis 之上套了一層外衣,單表 CURD 的操作幾乎都可以由 MyBatis-Plus 代替執(zhí)行。而且提供了各種查詢方式,分頁行為。作為使用者無需編寫 xml,直接調(diào)用 MyBatis-Plus 提供的 API 就可以了。
快速開始
幾分鐘就可以上手 MP,前提是需要熟悉 mybatis,spring 或 spring boot, maven,掌握 lambda 表達(dá)式更能提升效率。
準(zhǔn)備環(huán)境:
- 擁有 Java 開發(fā)環(huán)境以及相應(yīng) IDE
- 熟悉 Spring Boot
- 熟悉 Maven
準(zhǔn)備數(shù)據(jù)表
create database user; use user; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `email` varchar(80) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; insert into user values(null,'張三','666666@qq.com',18);
IDEA中配置 maven
創(chuàng)建 spring boot 應(yīng)用
使用 Spring Initializr 快速初始化一個(gè) Spring Boot 工程
idea 中 File – New Project 選擇 Spring Initializr 后填寫項(xiàng)目信息,創(chuàng)建工程。
項(xiàng)目信息
依賴選擇SQL中的MyBatis Framework
定義項(xiàng)目名稱和路徑
pom文件添加mybatis-plus依賴
<!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> <!-- mysql驅(qū)動(dòng) --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency>
application.properties或application.yml 添加數(shù)據(jù)庫配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/user spring.datasource.username=root spring.datasource.password=root
或
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/user username: root password: root
創(chuàng)建實(shí)體類
@TableId 設(shè)置主鍵, IdType.AUTO 使用自動(dòng)增長(zhǎng)產(chǎn)生主鍵
創(chuàng)建mapper接口
繼承 MyBatis Plus 中的 BaseMapper , 在 UserMapper 中使用 MP 中的方法,實(shí)
現(xiàn) CURD。
添加@MapperScan 掃描 Mapper 文件夾
測(cè)試
查看數(shù)據(jù)庫
配置 mybatis 日志
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
CRUD 基本用法
CRUD 的操作是來自 BaseMapper 中的方法。BaseMapper 中共有 17 個(gè)方法,CRUD 操作都有多個(gè)不同參數(shù)的方法。繼承 BaseMapper 可以其中的方法。
BaseMapper 方法列表:
insert 操作
注:insert()返回值 int,數(shù)據(jù)插入成功的行數(shù),成功的記錄數(shù)。getId()獲取主鍵值,成功影響行數(shù)后會(huì)自動(dòng)將主鍵值賦值給實(shí)體類的主鍵id。
update 操作
更新之前的數(shù)據(jù)庫
更新后的數(shù)據(jù)庫
注意:null 的字段不更新
沒有設(shè)置email的字段,所以此時(shí)的email的字段為null
SQL語句沒有設(shè)置email
數(shù)據(jù)庫
delete 操作
刪除有多個(gè)方法
deleteById:按主鍵刪除
根據(jù) Map 中條件刪除
注:刪除條件封裝在 Map 中,key 是列名,value 是值,多個(gè) key 之間 and 聯(lián)接。
日志:
批量刪除
把要?jiǎng)h除的 id 放入 List ,傳給 deleteBatchIds()
日志
select 操作
注:沒有查詢結(jié)果,不會(huì)報(bào)錯(cuò)。
日志
批量查詢記錄
注:根據(jù) id 查詢記錄,把需要查詢的多個(gè) id 存入到 List,調(diào)用 selectBatchIds(),
日志
使用 Map 的條件查詢
把要查詢的條件字段 put 到 Map,key 是字段,value 是條件值。多個(gè)條件是 and聯(lián)接。調(diào)用 selectByMap(),傳入 Map 作為參數(shù),返回值是 List 集合。
日志
到此這篇關(guān)于Mybatis Plus 增刪改查的實(shí)現(xiàn)(小白教程)的文章就介紹到這了,更多相關(guān)Mybatis Plus增刪改查 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java后端向前端返回文件流實(shí)現(xiàn)下載功能
后端可以使用Java中servlet提供的HttpServletResponse,核心步驟是要設(shè)置響應(yīng)的數(shù)據(jù)類型,設(shè)置為某一類文件類型或二進(jìn)制格式,以及響應(yīng)頭,然后用ServletOutputStream將文件以流的形式發(fā)送到前端,本文介紹Java后端向前端返回文件流實(shí)現(xiàn)下載功能,感興趣的朋友一起看看吧2023-12-12Java使用JavaMail API發(fā)送和接收郵件的代碼示例
JavaMail是Oracle甲骨文開發(fā)的Java郵件類API,支持多種郵件協(xié)議,這里我們就來看一下Java使用JavaMail API發(fā)送和接收郵件的代碼示例2016-06-06詳解Spring Boot 定時(shí)任務(wù)的實(shí)現(xiàn)方法
最近在用SpringBoot寫一個(gè)關(guān)于定時(shí)項(xiàng)目的時(shí)候遇到一個(gè)問題,下面小編把如何處理定時(shí)任務(wù)的解決思路分享給大家 ,需要的朋友參考下2017-05-05SpringBoot整合Mybatis與druid實(shí)現(xiàn)流程詳解
這篇文章主要介紹了springboot整合mybatis plus與druid詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的下伙伴可以參考一下2022-10-10SpringFox實(shí)現(xiàn)自動(dòng)生成RESTful?API文檔
在開發(fā)?RESTful?API?時(shí),編寫?API?文檔是一個(gè)重要的任務(wù),這篇文章為大家介紹了如何使用?SpringFox?自動(dòng)生成?RESTful?API?文檔,并提供示例代碼,需要的可以參考一下2023-06-06Javabean基于xstream包實(shí)現(xiàn)轉(zhuǎn)XML文檔的方法
這篇文章主要介紹了Javabean基于xstream包實(shí)現(xiàn)轉(zhuǎn)XML文檔的方法,結(jié)合具體實(shí)例形式分析了xstream包用于轉(zhuǎn)換xml文件的具體使用技巧,需要的朋友可以參考下2017-05-05springboot基于docsify?實(shí)現(xiàn)隨身文檔
這篇文章主要介紹了springboot基于docsify實(shí)現(xiàn)隨身文檔的相關(guān)資料,需要的朋友可以參考下2022-09-09java使用Dijkstra算法實(shí)現(xiàn)單源最短路徑
這篇文章主要為大家詳細(xì)介紹了java使用Dijkstra算法實(shí)現(xiàn)單源最短路徑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01