淺談MyBatis-plus入門使用

一、初始化 SpringBoot 項目

首先使用 Spring Initializer 腳手架初始化一個 SpringBoot 項目。然後在 pom.xml 中添加相關的依賴:

<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 依賴用於連接數據庫;為瞭簡化代碼,添加瞭 lombok 依賴,用於減少 getter、setter 等方法

二、創建數據表

創建用於測試的數據庫及相應的數據表

在這裡插入圖片描述

這邊用於測試的數據庫名為 fin-services ,數據表名為 users

三、在 application.yml 中配置 mysql 信息

url 的格式:jdbc:mysql://[ip]:[port]/[db name]

在這裡插入圖片描述

四、編寫用於測試的實體類

在這裡插入圖片描述

五、編寫操作實體類的 Mapper 類

這裡直接繼承 BaseMapper 類 (mybatis-plus 封裝好的類)

在這裡插入圖片描述

六、啟動類中掃描 Mapper 類

在啟動類中添加 @MapperScan 註解

在這裡插入圖片描述

裡面的參數是 mapper 文件夾的路徑

七、寫一個測試類

最後寫一個測試類測試一下

在這裡插入圖片描述

運行一下這個測試方法,成功拿到查詢數據

在這裡插入圖片描述

這邊順便說幾個編碼的小技巧。這邊核心的查詢語句其實就是:

List<Users> usersList = usersMapper.selectList(null);

在編寫代碼的時候,隻需要輸入 usersMapper.selectList(null).var ,然後按回車,編輯器會自動進行代碼補全:

在這裡插入圖片描述

然後編寫 for 循環的語句,對需要進行循環的變量輸入 usersList.for ,然後按回車,編輯器會自動進行代碼補全:

在這裡插入圖片描述

對變量打印輸出,隻需要輸入 users.sout ,然後按回車,編輯器會自動進行代碼補全:

在這裡插入圖片描述

八、配置日志

想要查看執行的 sql 語句,可以在 yml 文件中添加配置信息:

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

如下圖所示,執行時會打印出 sql 語句:

在這裡插入圖片描述

九、遇到的兩個坑

之前本人用的 lombok 1.18.10 ,項目運行的時候報瞭一個錯誤:

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

查瞭下是因為 lombok 1.18.10 與 Java16 不兼容,改用最新版本 1.18.20 解決。可以直接到 maven 官網查詢依賴庫的最新版本:https://mvnrepository.com/artifact/org.projectlombok/lombok

然後還有一個錯誤:

org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table ‘fin-services.user’ doesn’t exist

這是因為之前實體類的類名為 User ,而數據庫的表名是 users 。將實體類的類名改為 Users 解決。實體類的類名,需要與數據庫的表名對應

十、總結

現在可以實現不帶條件的數據庫的查詢,後續會補充一下查詢條件的使用。為瞭實現完整的後端服務,還需要實現如下功能:

  • 使用 MyBatis-Plus 實現 CURD;
  • 進行統一參數校驗;
  • 後臺生成 token ,對請求進行 token 校驗
  • 後臺封裝統一響應體 ServerResponse ,統一異常處理

到此這篇關於淺談MyBatis-plus入門使用的文章就介紹到這瞭,更多相關MyBatis-plus內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: