淺談MyBatis-plus入門使用
一、初始化 SpringBoot 項(xiàng)目
首先使用 Spring Initializer 腳手架初始化一個(gè) SpringBoot 項(xiàng)目。然后在 pom.xml 中添加相關(guān)的依賴:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
mysql 依賴用于連接數(shù)據(jù)庫;為了簡(jiǎn)化代碼,添加了 lombok 依賴,用于減少 getter、setter 等方法
二、創(chuàng)建數(shù)據(jù)表
創(chuàng)建用于測(cè)試的數(shù)據(jù)庫及相應(yīng)的數(shù)據(jù)表

這邊用于測(cè)試的數(shù)據(jù)庫名為 fin-services ,數(shù)據(jù)表名為 users
三、在 application.yml 中配置 mysql 信息
url 的格式:jdbc:mysql://[ip]:[port]/[db name]

四、編寫用于測(cè)試的實(shí)體類

五、編寫操作實(shí)體類的 Mapper 類
這里直接繼承 BaseMapper 類 (mybatis-plus 封裝好的類)

六、啟動(dòng)類中掃描 Mapper 類
在啟動(dòng)類中添加 @MapperScan 注解

里面的參數(shù)是 mapper 文件夾的路徑
七、寫一個(gè)測(cè)試類
最后寫一個(gè)測(cè)試類測(cè)試一下

運(yùn)行一下這個(gè)測(cè)試方法,成功拿到查詢數(shù)據(jù)

這邊順便說幾個(gè)編碼的小技巧。這邊核心的查詢語句其實(shí)就是:
List<Users> usersList = usersMapper.selectList(null);
在編寫代碼的時(shí)候,只需要輸入 usersMapper.selectList(null).var ,然后按回車,編輯器會(huì)自動(dòng)進(jìn)行代碼補(bǔ)全:

然后編寫 for 循環(huán)的語句,對(duì)需要進(jìn)行循環(huán)的變量輸入 usersList.for ,然后按回車,編輯器會(huì)自動(dòng)進(jìn)行代碼補(bǔ)全:

對(duì)變量打印輸出,只需要輸入 users.sout ,然后按回車,編輯器會(huì)自動(dòng)進(jìn)行代碼補(bǔ)全:

八、配置日志
想要查看執(zhí)行的 sql 語句,可以在 yml 文件中添加配置信息:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
如下圖所示,執(zhí)行時(shí)會(huì)打印出 sql 語句:

九、遇到的兩個(gè)坑
之前本人用的 lombok 1.18.10 ,項(xiàng)目運(yùn)行的時(shí)候報(bào)了一個(gè)錯(cuò)誤:
java: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x55a9b697) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x55a9b697
查了下是因?yàn)?lombok 1.18.10 與 Java16 不兼容,改用最新版本 1.18.20 解決??梢灾苯拥?maven 官網(wǎng)查詢依賴庫的最新版本:https://mvnrepository.com/artifact/org.projectlombok/lombok
然后還有一個(gè)錯(cuò)誤:
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table ‘fin-services.user' doesn't exist
這是因?yàn)橹皩?shí)體類的類名為 User ,而數(shù)據(jù)庫的表名是 users 。將實(shí)體類的類名改為 Users 解決。實(shí)體類的類名,需要與數(shù)據(jù)庫的表名對(duì)應(yīng)
十、總結(jié)
現(xiàn)在可以實(shí)現(xiàn)不帶條件的數(shù)據(jù)庫的查詢,后續(xù)會(huì)補(bǔ)充一下查詢條件的使用。為了實(shí)現(xiàn)完整的后端服務(wù),還需要實(shí)現(xiàn)如下功能:
- 使用 MyBatis-Plus 實(shí)現(xiàn) CURD;
- 進(jìn)行統(tǒng)一參數(shù)校驗(yàn);
- 后臺(tái)生成 token ,對(duì)請(qǐng)求進(jìn)行 token 校驗(yàn)
- 后臺(tái)封裝統(tǒng)一響應(yīng)體 ServerResponse ,統(tǒng)一異常處理
到此這篇關(guān)于淺談MyBatis-plus入門使用的文章就介紹到這了,更多相關(guān)MyBatis-plus內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解springmvc控制登錄用戶session失效后跳轉(zhuǎn)登錄頁面
本篇文章主要介紹了springmvc控制登錄用戶session失效后跳轉(zhuǎn)登錄頁面,session一旦失效就需要重新登陸,有興趣的同學(xué)可以了解一下。2017-01-01
從?PageHelper?到?MyBatis?Plugin執(zhí)行概要及實(shí)現(xiàn)原理
這篇文章主要為大家介紹了從?PageHelper?到?MyBatis?Plugin執(zhí)行概要及實(shí)現(xiàn)原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Java異常鏈表throw結(jié)構(gòu)assert詳細(xì)解讀
這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08
Spring利用@Validated注解實(shí)現(xiàn)參數(shù)校驗(yàn)詳解
這篇文章主要為大家詳細(xì)介紹了在?Spring?項(xiàng)目中使用?@Validated?進(jìn)行參數(shù)校驗(yàn)的方法和常見應(yīng)用場(chǎng)景,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
Spring Security自定義登錄原理及實(shí)現(xiàn)詳解
這篇文章主要介紹了Spring Security自定義登錄原理及實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
spring的事務(wù)傳播屬性REQUIRED_NESTED原理
這篇文章主要介紹了spring的事務(wù)傳播屬性REQUIRED_NESTED原理,在spring中,要想使用事務(wù)中的回滾點(diǎn),可以使用傳播屬性NESTED,需要的朋友可以參考下2023-05-05
Java獲取支付寶OpenID的實(shí)現(xiàn)方法
在Java中,通過支付寶開放平臺(tái)API可以獲取用戶的OpenID,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09

