SpringBoot整合Mybatis-plus
git項目位址 完整版
1.建立項目
首先我們需要建立一個SpringBoot建立,我使用的是maven建構SpringBoot項目.在這裡我們就不貼圖了
2.導入SpringBoot以及其他的依賴
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!--生産xml-->
<!-- 如果不添加此節點mybatis的mapper.xml檔案都會被漏掉。 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.html</include>
<include>**/*.css</include>
<include>**/*.js</include>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
注:我用得mysql為 5.7版本的你們可根據自身版本挑選依賴
2.1建立SpringBoot啟動類
public static void main(String[] args) throws Exception{
Long s1 = System.currentTimeMillis();
ConfigurableApplicationContext application = SpringApplication.run(MybatisApplication.class, args);
Long s2 = System.currentTimeMillis();
Environment env = application.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = env.getProperty("server.servlet.context-path");
System.out.println("=======================================>");
System.out.println("啟動耗時=======>"+(s2-s1));
System.out.println("Local:http://localhost:" + port + path);
System.out.println("serve start-up success");
System.out.println("=======================================>");
}
2.2建立yml檔案
#配置端口号
server:
port: 8085
#配置資料庫連接配接
spring:
datasource:
#配置的資料源為druid
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/gxhserve?UseSSL=true&characterEncoding=UTF-8&UseUnicode=true
username: root
password: 123456
#配置MybatisPlus
mybatis-plus:
global-config:
#關閉啟動MybatisPlus自帶的banner圖
banner: false
#配置掃描xml資源路徑
mapper-locations: classpath*:com/gxh/modules/**/xml/*Mapper.xml
#自動駝峰映射
configuration:
map-underscore-to-camel-case: true
2.3 MybatisPlusConfig
/***
* @author gxh
* @date 2021-8-21
*/
@Configuration
@MapperScan(value = {"com.gxh.modules.**.mapper*"})
public class MybatisPlusConfig {
/**
* 分頁插件 MybatisPlus提供的分頁
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
// 設定sql的limit為無限制,預設是500
return new PaginationInterceptor().setLimit(-1);
}
}
貼出我的目錄結構

測試運作
1.建立一張表
id | username | password |
---|---|---|
1 | admin | 123456 |
2.建立實體
package com.gxh.modules.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Objects;
@TableName("sys_user")//mybatisPlus 注解:映射表名
@Data// lombok代碼簡化注解,包裝Get/Set/構造器
public class SysUser implements Serializable {
private Integer id;
private String username;
private String password;
/**
* 重寫父類Object 提供的 toString方法,友善測試
* @return
*/
@Override
public String toString() {
return "SysUser{" +
"id='" + id + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SysUser sysUser = (SysUser) o;
return Objects.equals(id, sysUser.id) &&
Objects.equals(username, sysUser.username) &&
Objects.equals(password, sysUser.password);
}
@Override
public int hashCode() {
return Objects.hash(id, username, password);
}
}
3.建立Dao(Mapper)層接口---------------映射xml檔案
package com.gxh.modules.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gxh.modules.entity.SysUser;
// BaseMapper 是MyBatisPlus提供
public interface SysUserMapper extends BaseMapper<SysUser> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--引用指向的mapper接口-->
<mapper namespace="com.gxh.modules.mapper.SysUserMapper">
</mapper>
4建立業務層及其實作類
package com.gxh.modules.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxh.modules.entity.SysUser;
public interface ISysUserService extends IService<SysUser> {
}
package com.gxh.modules.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxh.modules.entity.SysUser;
import com.gxh.modules.mapper.SysUserMapper;
import com.gxh.modules.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
//lombok 提供的注解簡化, 簡化了多個 @Autowired / @Resource
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SysUserServiceImpl
extends ServiceImpl<SysUserMapper, SysUser>
implements ISysUserService {
//切記使用lombok 注入方式,必須private final 修飾,否則引起注入空指針
private final SysUserMapper sysUserMapper;
}
5建立控制器并測試執行
package com.gxh.modules.controller;
import com.gxh.modules.entity.SysUser;
import com.gxh.modules.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.websocket.server.PathParam;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/sys/user")
//lombok 提供的注解簡化, 簡化了多個 @Autowired / @Resource
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SysUserController {
//切記使用lombok 注入方式,必須private final 修飾,否則引起注入空指針
private final ISysUserService sysUserService;
@GetMapping("/{id}")
public Map<String,Object> queryUserById(@PathVariable("id") Integer id){
Map<String,Object> infoMap = new HashMap<>();
SysUser sysUser = this.sysUserService.getById(id);
infoMap.put("user",sysUser);
return infoMap;
}
@GetMapping("/list")
public Map<String,Object> userList(){
Map<String,Object> infoMap = new HashMap<>();
List<SysUser> users = this.sysUserService.list();
infoMap.put("userList",users);
return infoMap;
}
}
測試圖示
最終工程結構
到此結束,以上就是SpringBoot和mybatis-plus的整合過程,關于其中的一些實戰開發中的用法下期在講解
SpringBoot快速內建MyBatis-plus—(第二篇)