SpringBoot整合MyBatis-Plus的示例代碼
前言
使用 MyBatis-Plus 可以減少大量的開發(fā)時間,單表的增刪改查可以不用寫 sql 語句。
本博客主要說明整合需要特別注意的地方。
本博客分別構(gòu)建了一個單工程項目以及一個多工程項目,主要分析單工程項目的細節(jié)。
如有不正確的地方,歡迎指正。
源碼
GitHub地址:https://github.com/intomylife/SpringBoot
環(huán)境
- JDK 1.8.0 +
- Maven 3.0 +
- MySQL 5.6.17
- SpringBoot 2.0.3
開發(fā)工具
- IntelliJ IDEA
SQL腳本
DROP TABLE IF EXISTS `springboot_mybatis_plus` ;
CREATE TABLE `springboot_mybatis_plus` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`type` varchar(2) DEFAULT NULL COMMENT '生活用品類別:1. 家電類 2. 廚具',
`name` varchar(50) DEFAULT NULL COMMENT '生活用品名稱',
`description` varchar(200) DEFAULT NULL COMMENT '生活用品描述',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='springboot整合mybatis-plus測試表';
INSERT INTO springboot_mybatis_plus ( type , name , description )
VALUES ('1','電飯煲','用來蒸飯'),('1','電熱壺','用來燒水'),
('1','空調(diào)','用來制冷或制熱'),('2','菜刀','用來切菜'),
('2','刨子','用來剝皮'),('2','打蛋器','用來攪拌雞蛋');正文
單工程
POM文件(注意)
<?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 http://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.0.3.RELEASE</version>
</parent>
<!-- 三坐標 -->
<groupId>com.zwc</groupId>
<artifactId>springboot-mybatis-plus-single</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 工程名稱和描述 -->
<name>springboot-mybatis-plus-single</name>
<description>springboot整合mybatis-plus</description>
<!-- 打包方式 -->
<packaging>jar</packaging>
<!-- 在properties下聲明相應(yīng)的版本信息,然后在dependency下引用的時候用${spring-version}就可以引入該版本jar包了 -->
<properties>
<!-- 編碼 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- jdk -->
<java.version>1.8</java.version>
<!-- ali 連接池 -->
<druid.version>1.1.9</druid.version>
<!-- ali json -->
<fastjson.version>1.2.47</fastjson.version>
<jackson.mapper.asl.version>1.9.9</jackson.mapper.asl.version>
<!-- mybatis -->
<mybatis-plus-boot-starter.version>3.0-RELEASE</mybatis-plus-boot-starter.version>
<mybatis-spring-boot-starter.version>1.3.2</mybatis-spring-boot-starter.version>
<mybatis.ehcache.version>1.1.0</mybatis.ehcache.version>
</properties>
<dependencies>
<!-- springboot 依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- ali 連接池依賴 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- ali json依賴 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.mapper.asl.version}</version>
</dependency>
<!-- mybatis 依賴 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>${mybatis.ehcache.version}</version>
</dependency>
<!-- mysql 依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 自動生成get,set方法 依賴 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- springboot 測試依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<!-- 打包時 maven 默認只打包 src/main/resource 下的資源 -->
<!-- 這里自定義要打包的資源文件的路徑,一般是 Mapper 文件的位置 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>- Maven 項目的核心文件,用來管理項目的依賴
- 依賴 mybatis-plus-boot-starter 后就把 MyBatis-Plus 整合到 SpringBoot 中了
application.properties(注意)
# 端口 server.port=8081 # 數(shù)據(jù)源 ## 驅(qū)動 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ## url 注意把數(shù)據(jù)庫換成你本地的數(shù)據(jù)庫名稱 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/base_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=PRC&useSSL=false ## 用戶名 注意把用戶名換成你本地的用戶名 spring.datasource.username=root ## 密碼 注意把密碼換成你本地的密碼 spring.datasource.password=123456 # mybatis-plus mybatis-plus.mapper-locations=classpath:com/zwc/base/mapper/xml/*.xml mybatis-plus.type-aliases-package=com.zwc.base.domain # 日志 logging.level.com.zwc.base.mapper=debug
- SpringBoot 會默認讀取加載 resources 文件夾下的 application.properties 文件里的配置信息
- 配置 mybatis-plus:mapper-locations - > mapper 文件的位置;type-aliases-package - > 實體類所在的包
自定義配置(注意)
package com.zwc.base.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @ClassName MyBatisPlusConfig
* @Desc TODO mybatis-plus 配置
* @Date 2019/3/26 16:00
* @Version 1.0
*/
@Configuration
public class MyBatisPlusConfig {
/*
* @ClassName MyBatisPlusConfig
* @Desc TODO mybatis-plus 配置攔截
* @Date 2019/3/26 18:13
* @Version 1.0
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 設(shè)置方言
paginationInterceptor.setDialectType("mysql");
return paginationInterceptor;
}
}- @Configuration + @Bean 注解 注入 PaginationInterceptor 類 配置 MyBatis-Plus 分頁插件
- 設(shè)置方言為 MySQL 數(shù)據(jù)庫
實體類(注意)
基礎(chǔ)實體類,與數(shù)據(jù)庫字段一一對應(yīng)
package com.zwc.base.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import java.io.Serializable;
/**
* @ClassName SpringbootMybatisPlus
* @Desc TODO springboot整合mybatis-plus測試表
* @Date 2019/3/26 17:45
* @Version 1.0
*/
@Data
public class SpringbootMybatisPlus extends Model<SpringbootMybatisPlus> {
private static final long serialVersionUID = -7876888313791106541L;
/**
* 自增ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
* 生活用品類別:1. 家電類 2. 廚具
private String type;
* 生活用品名稱
private String name;
* 生活用品描述
private String description;
public static final String ID = "id";
public static final String TYPE = "type";
public static final String NAME = "name";
public static final String DESCRIPTION = "description";
@Override
protected Serializable pkVal() {
return this.id;
}
}需繼承 MyBatis-Plus 的 Model 類,使用 @TableId 注解標注 id 字段
還有兩個擴展實體類:封裝請求參數(shù)(SpringbootMybatisPlusRequestQueryDTO)以及
封裝響應(yīng)結(jié)果(SpringbootMybatisPlusResponseDTO)
這里就不占篇幅了,可以到 GitHub 中獲取源碼。
Mapper 接口(注意)
package com.zwc.base.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zwc.base.domain.SpringbootMybatisPlus;
import com.zwc.base.dto.request.SpringbootMybatisPlusRequestQueryDTO;
import com.zwc.base.dto.response.SpringbootMybatisPlusResponseDTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/*
* @ClassName SpringbootMybatisPlusMapper
* @Desc TODO springboot整合mybatis-plus測試表 mapper 接口
* @Date 2019/3/26 17:52
* @Version 1.0
*/
public interface SpringbootMybatisPlusMapper extends BaseMapper<SpringbootMybatisPlus> {
// 分頁查詢測試表數(shù)據(jù)
List<SpringbootMybatisPlusResponseDTO> query(@Param("data") SpringbootMybatisPlusRequestQueryDTO springbootMybatisPlusRequestQueryDTO , Page<SpringbootMybatisPlusResponseDTO> page);
}需繼承 MyBatis-Plus 的 BaseMapper 接口,注意類型是繼承過 MyBatis-Plus 的 Model 類的實體類。BaseMapper 定義了很多函數(shù),方便開發(fā)使用
Service 服務(wù)實現(xiàn)類(注意)
@Service
public class SpringbootMybatisPlusServiceImpl extends ServiceImpl<SpringbootMybatisPlusMapper,SpringbootMybatisPlus> implements SpringbootMybatisPlusService {
// 這里只貼出了關(guān)鍵需要注意的代碼塊
...
}需繼承 MyBatis-Plus 的 ServiceImpl 類,即可調(diào)用 baseMapper 中的方法。如果還需調(diào)用其他自定義的 Mapper ,就用@Resource 注解注入
Controller 前端控制器(注意)
package com.zwc.base.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zwc.base.dto.request.SpringbootMybatisPlusRequestQueryDTO;
import com.zwc.base.dto.response.SpringbootMybatisPlusResponseDTO;
import com.zwc.base.service.SpringbootMybatisPlusService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName SpringbootMybatisPlusController
* @Desc TODO springboot整合mybatis-plus測試表 前端控制器
* @Date 2019/3/26 18:14
* @Version 1.0
*/
@RestController
@RequestMapping("smpc")
public class SpringbootMybatisPlusController {
@Autowired
private SpringbootMybatisPlusService springbootMybatisPlusService;
/*
* @ClassName SpringbootMybatisPlusController
* @Desc TODO 新增數(shù)據(jù)
* @Date 2019/3/27 11:40
* @Version 1.0
*/
@RequestMapping("/add")
@ResponseBody
public String add(){
return springbootMybatisPlusService.add();
}
* @Desc TODO 刪除數(shù)據(jù)
* @Date 2019/3/27 13:15
@RequestMapping("/delete")
public String delete(){
return springbootMybatisPlusService.delete();
* @Desc TODO 更新數(shù)據(jù)
* @Date 2019/3/27 13:46
@RequestMapping("/update")
public String update(){
return springbootMybatisPlusService.update();
* @Desc TODO 分頁查詢測試表數(shù)據(jù)
* @Date 2019/3/26 18:10
@RequestMapping("/query")
public Page<SpringbootMybatisPlusResponseDTO> query(@RequestParam(value = "springbootMybatisPlusRequestQueryDTO",required = false) SpringbootMybatisPlusRequestQueryDTO springbootMybatisPlusRequestQueryDTO){
return springbootMybatisPlusService.getDataByPage(springbootMybatisPlusRequestQueryDTO);
}增刪改查的方法各有一例
SpringBoot 啟動類(注意)
package com.zwc;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages = "com.zwc")
@MapperScan("com.zwc.base.mapper")
public class SpringbootMybatisPlusSingleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisPlusSingleApplication.class, args);
}
}使用 @MapperScan 注解掃描 Mapper 接口
啟用項目,調(diào)用接口(注意)
- 端口:8081(具體可以根據(jù)自己的喜好,在 application.properties 配置文件中配置 server.port)
- 新增接口:http://localhost:8081/smpc/add
- 刪除接口:http://localhost:8081/smpc/delete
- 更新接口:http://localhost:8081/smpc/update
- 分頁查詢接口:http://localhost:8081/smpc/query項目結(jié)構(gòu)

以上就是單工程整合 MyBatis-Plus 需要注意的地方,下面說說多工程項目的結(jié)構(gòu)
多工程
為什么要構(gòu)建多工程?
一般在實際工作中,項目的代碼量會很大,而且隨著時間的推移,還要不停的追加新的功能,如果開始不注意,全部籠統(tǒng)的寫到一個工程中,那樣越到后面開發(fā)就會越困難。
如何劃分模塊?
一般開發(fā)中會將公共的部分提取出來,比如工具類,系統(tǒng)常量,公共配置等等.. 它們通常叫做 commons 工程;
還有一部分就是帶有業(yè)務(wù)邏輯的工程,里面可能會包含 基礎(chǔ)模塊,用戶模塊,訂單模塊等等...,
它們通常叫做 service工程。
commons 工程 - POM 文件
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 三坐標 -->
<groupId>com.zwc</groupId>
<artifactId>springboot-mybatis-plus-commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 工程名稱和描述 -->
<name>springboot-mybatis-plus-commons</name>
<description>公用工程</description>
<!-- 打包方式 -->
<packaging>jar</packaging>
<!-- 在properties下聲明相應(yīng)的版本信息,然后在dependency下引用的時候用${spring-version}就可以引入該版本jar包了 -->
<properties>
<!-- 編碼 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- jdk -->
<java.version>1.8</java.version>
<!-- springboot -->
<platform-bom.version>Cairo-SR3</platform-bom.version>
<!-- ali 連接池 -->
<druid.version>1.1.9</druid.version>
<!-- ali json -->
<fastjson.version>1.2.47</fastjson.version>
<jackson.mapper.asl.version>1.9.9</jackson.mapper.asl.version>
<!-- mybatis -->
<mybatis-plus-boot-starter.version>3.0-RELEASE</mybatis-plus-boot-starter.version>
<mybatis-spring-boot-starter.version>1.3.2</mybatis-spring-boot-starter.version>
<mybatis.ehcache.version>1.1.0</mybatis.ehcache.version>
</properties>
<!-- 加入依賴 -->
<dependencies>
<!-- ali 連接池依賴 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- mysql 依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- ali json依賴 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.mapper.asl.version}</version>
</dependency>
<!-- mybatis 依賴 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>${mybatis.ehcache.version}</version>
</dependency>
</dependencies>
<!-- 依賴 jar 包版本管理的管理器 -->
<!-- 如果 dependencies 里的 dependency 自己沒有聲明 version 元素,那么 maven 就此處來找版本聲明。 -->
<!-- 如果有,就會繼承它;如果沒有就會報錯,告訴你沒有版本信息 -->
<!-- 優(yōu)先級:如果 dependencies 里的 dependency 已經(jīng)聲明了版本信息,就不會生效此處的版本信息了 -->
<dependencyManagement>
<dependencies>
<!-- SpringBoot -->
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>${platform-bom.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 插件依賴 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>配置一些共用依賴,其中包括 mybatis-plus-boot-starter 依賴用來整合
MyBatis-Plus commons 工程 - system.properties
# mybatis-plus ## 掃描 mapper 文件 mybatis-plus.mapper-locations=classpath*:com/zwc/*/mapper/xml/*.xml ## 掃描實體類 mybatis-plus.type-aliases-package=com.zwc.*.domain
- 一些共用配置,不經(jīng)常修改的,或者是可以統(tǒng)一修改的
- 這里掃描 Mapper 文件和實體類都用了通配符的方式
- 比如還可以配置 OSS 的配置信息,Redis 的配置信息,MongoDB 的配置信息等等..
commons 工程 - 自定義配置
package com.zwc.core.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
/**
* @ClassName MyBatisPlusConfig
* @Desc TODO mybatis-plus 配置
* @Date 2019/3/26 16:00
* @Version 1.0
*/
@Configuration
@PropertySource("classpath:system.properties")
public class MyBatisPlusConfig {
/*
* @ClassName MyBatisPlusConfig
* @Desc TODO mybatis-plus 配置攔截
* @Date 2019/3/26 18:13
* @Version 1.0
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 設(shè)置方言
paginationInterceptor.setDialectType("mysql");
return paginationInterceptor;
}
}注意這里在注入類的時候,還要加載自定的配置文件,因為 SpringBoot 不會默認加載 system.properties
其他代碼就與單工程差不多一致了
commons 工程 - 項目結(jié)構(gòu)

service 工程 - 項目結(jié)構(gòu)

- 在 service 總工程中創(chuàng)建了一個 base-service 的基礎(chǔ)模塊
- 每一個模塊中都包含 api 和 core

- api:主要包含接口,常量以及實體類的擴展類

- core:帶有啟動類的工程,此模塊的核心代碼都在里面
把多工程項目使用 IntelliJ IDEA 打開
- 把項目從 GitHub 中下載到你的本地
- 打開 IntelliJ IDEA
- 點擊 File -> Open
- 打開你下載到本地的項目目錄
- springboot-mybatis-plus -> multi-module -> springboot-mybatis-plus-service(選擇打開此工程)
- 打開 service 工程后
- 再次點擊 File -> Project Structrue
- 選擇 Modules,點擊 '+' 符號
- 點擊 Import Module
- 還是打開你下載到本地的項目目錄
- springboot-mybatis-plus -> multi-module -> springboot-mybatis-plus-commons -> pom.xml
- 點擊 OK
- 點擊 Next,F(xiàn)inish
- 點擊 Apply,OK
結(jié)語
到此 SpringBoot 整合 MyBatis-Plus 就結(jié)束了,關(guān)鍵的點就這么多,多多嘗試,一定會成功的!
到此這篇關(guān)于SpringBoot整合MyBatis-Plus的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot整合MyBatis-Plus內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IntelliJ IDEA 2018 最新激活碼(截止到2018年1月30日)
這篇文章主要介紹了IntelliJ IDEA 2018 最新激活碼(截止到2018年1月30日)的相關(guān)資料,需要的朋友可以參考下2018-01-01
Java的優(yōu)先隊列PriorityQueue原理及實例分析
這篇文章主要介紹了Java的優(yōu)先隊列PriorityQueue原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12
解決Tomcat啟動報異常java.lang.ClassNotFoundException問題
這篇文章主要介紹了解決Tomcat啟動報異常java.lang.ClassNotFoundException問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
java中LinkedList使用迭代器優(yōu)化移除批量元素原理
本文主要介紹了java中LinkedList使用迭代器優(yōu)化移除批量元素原理,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
springboot整合mybatis實現(xiàn)多表查詢的實戰(zhàn)記錄
SpringBoot對數(shù)據(jù)庫操作有多種方式,下面這篇文章主要給大家介紹了關(guān)于springboot整合mybatis實現(xiàn)多表查詢的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細,需要的朋友可以參考下2021-08-08
idea創(chuàng)建spring?boot項目時javaversion只能選擇17和21解決辦法
這篇文章主要給大家介紹了關(guān)于idea創(chuàng)建spring?boot項目時javaversion只能選擇17和21的解決辦法,文中通過代碼介紹的非常詳細,對大家學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01

