springboot使用mybatisPlus進行數據庫增刪改查
提示:幫幫志會陸續更新非常多的IT技術知識,希望分享的內容對您有用。本章分享的是springboot的使用。前后每一小節的內容是存在的有:學習and理解的關聯性。【幫幫志系列文章】:每個知識點,都是寫出代碼和運行結果且前后關聯上的去分析和說明(能大量節約您的時間)。
所有文章都*不會*直接把代碼放那里,讓您自己去看去理解。我希望我的內容對您有用而努力~
文章目錄
- springboot使用mybatisPlus進行數據庫增刪改查
- 前言
- 一、添加項目依賴
- 二、編寫各個配置
- 三、實現增刪改查
- 查詢
- 添加
- 修改
- 刪除
- 總結
本文章是系列文章,技術棧內容為:【springboot+vue】【前后分離】
【詳細圖文,實操步驟分享,節約時間版】。最終完成一個商業化項目。內容有:
springboot知識
mybatisPlus知識
vue知識
node.js知識
本小節的內容是:
mybatisPlus篇章 之 : 04.使用mybatisPlus進行數據庫增刪改查
本小節有兩個附小節,分別是:
mybatisPlus進行多表聯動查詢(正在上傳ing)
mybatisPlus進行分頁查詢(正在上傳ing)
如還沒有創建springboot可查閱:
【2025年】基于電腦的jdk1.8通過idea創建springboot2.x版本(非常簡潔快速)
【上榜文章,一文搞定】現在springboot是3.x以上版本,jdk版本至少要求17.但是很多時候我們電腦是jdk1.8(求穩定性和安全性)。文本分享本機電腦1.8的jdk。idea如何非常簡潔快速的創建springboot
文章里面也有 為什么只能是jdk17起和地址指定為阿里云報錯的解決辦法
本小節為第四小節,前面已經分享了通過springboot去關聯操作網頁數據((RESTful風格和swagger的使用)),加上本小節springboot就可以同時關聯網頁和操作數據庫
RESTful風格是什么,如何去設計
前言
在數據庫中創建一個表
當前使用的是mysql數據庫
創建一個名為user的表,分別有三個字段(uid uname uage)uid為主鍵且自增
在手動添加一些模擬的數據
一、添加項目依賴
在pom.xml文件的dependencies標簽里面 添加新的依賴標簽。
<!--springboot2--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency><!--MySQL驅動--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>5.1.47</scope></dependency>
左上角點擊maven 點擊刷新。第一次使用這個依賴的話,需要等待一會它下載。
二、編寫各個配置
根據數據庫創建實體類
public class User {private int uid;private String uname;private int uage;... 構造函數 和 get set方法 方便測試看數據再來一個:toString()
}
在application.properties配置里面添加:
#注意需要修改為自己的數據庫名稱,我的是test。問號后面是時區的設置,防止報錯spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
#密碼修改為自己的#mybatis-plus的日志配置,可以在控制臺看到操作數據庫的日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
編寫dao/mapper 包
就是操作數據庫的包 有些公司為dao層 有些公司根據mybatis映射寫成了mapper
創建一個接口,和mybatis一樣。面向接口映射動態代理
import com.baomidou.mybatisplus.core.mapper.BaseMapper;@Mapper//添加@Mapper注解(重要)
public interface UserDao extends BaseMapper<User> {//繼承父接口,指定實體類 類型為User//繼承了BaseMapper,里面有很多很多增刪改查的方法。所以:dao層就寫完了!!!!!//您也可以自己寫一個方法接口,根據實際的業務場景,來補充BaseMapper里面沒有的//就像這樣(這個是案例,其實查詢的方法。BaseMapper有很多):@Select("select * from user")public List<User> findAll();//修改@update 刪除@delete 添加@insert@update(update user set uname=#{uname} where uid = #{uid})//這個父類也有的public int updateNameById(User user); //sql語句在注解后面,語法和mybatis一模一樣,如# 和 $ limit order 。。。。等等
}
編寫service/controller 包
@Resourceprivate UserDao userDao;@GetMapping("/findAll")public List<User> findAll(){//這個selectList是BaseMapper自帶的//selectList(user) 也可以傳一個帶了一些數據的User,它能拼接查詢條件List<User> list = userDao.selectList(null); return list;//userDao是子類。里面有很多父類的方法//大家可以 : userDao. 查看提示,很多很多增刪改查自帶的}
在啟動類里面添加注解:@MapperScan(“com.bbz.bbzspring.dao”)
指向您的dao/mapper層 的 接口包名
@SpringBootApplication
@MapperScan("com.bbz.bbzspring.dao")
public class BbzspringApplication {...
}
啟動項目,運行。輸入對應的GetMapping(“/findAll”)地址:
我的controller類是@RestController注解,返回數據的(上幾個小節有步驟, 延續下來的)
總結:
添加依賴
完善工程結構(實體類 和 service 和 controller)
dao/mapper層的接口
繼承
mybatisplus.core.mapper.BaseMapper接口
就弄完了。BaseMapper里面有很多自帶的增刪改查方法
一般公司:還是需要自己寫很多接口方法,因為級聯操作 , 多表的映射等等,它還沒有那么智能。還是要自己來寫,在sql語句里面配置多表之間的連接條件啥的
三、實現增刪改查
我的dao層是空的,現在用的全是BaseMapper自帶的方法。dao層代碼這里省略
它就一句:public interface UserDao extends BaseMapper<User>
當然還有一個@Mapper的注解在接口類上面
查詢
直接使用主鍵查詢,則需要告訴它那個成員變量是主鍵
在實體類里面,給主鍵添加一個注解
public class User {@TableIdprivate int uid;
@GetMapping("/getUser")public User getUser(){User user = userDao.selectById(1);return user;}
添加
@PostMapping("/addUser")//post提交public int getUser(User user){int number = userDao.insert(user);return number;}
在網頁測試工具里面,注意修改提交方式為post,地址對應注解的值。添加了參數,id沒有添加,因為是自動遞增
apiPost安裝及使用
spring框架:您直接發送前端的數據 對應 實體類成員變量的單詞,自動放入數據
頁面的uname 對應 實體類.uname
頁面的uage 對應 實體類.uage
后端方法參數直接就 對應封好了 每一個傳遞過來的數據值
public int getUser(User user) 就是這個user
它自動里面有數據了,方法里面直接用就可以了
所以:為什么對應單詞:如果同時有很多個字符串,單詞又不對應,那么哪個放哪個呢
刷新數據庫。
為什么要修改注解和用工具來生成不同的提交方式,哦,沒事的~
您跳著看了吧~ 摳鼻/笑哭.gif手動表情
RESTful風格是什么
修改
@PutMapping("/updateUser") //注解是put注解了哈public int updateUser(User user){int number = userDao.updateById(user);return number;}
改了uname的一個名字,為put提交,修改了地址對應注解。
因為是修改,添加了一個參數為uid
刷新數據庫:
刪除
@DeleteMapping("/deleteUser")public int deleteUser(User user){int number = userDao.deleteById(user.getUid());return number;}
總結
說明一下:整個這個系列實現前后分離的springboot+vue項目。序號文章一共也就10幾篇,只有核心圖文重點操作步驟來實現這個目標(基本上您邊看邊寫:一個小時或者一上午就能跟著一起手搓一個前后分離項目,然后您可以自行添加功能和內容在您項目里面)
其他擴展細節知識點,本系列省略了(或者有鏈接)如:
mybatisPlus的特點,內部原理,管它現在用不用的上,內容全部丟進來。可能會很多很多了。當前 系列: 我們的目的是快速手搓前后分離項目 其他詳細版的,請查閱幫幫志其他的文章,是有的
(會陸續更新非常多的IT技術知識及泛IT的電商知識,可以點個關注,共同交流。?( ′・?・` )比心)
(也歡迎評論,提問。 我會依次回答~)