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—(第二篇)