Springboot整合MybatisPlus完成CRUD详细教程!

springboot项目创建在博客第一篇,参考下!
1.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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <modules>

    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com</groupId>
    <artifactId>manage</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>文件管理项目</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
        <druid.starter.version>1.1.9</druid.starter.version>
        <mysql.version>5.1.32</mysql.version>
        <lombok.version>1.16.20</lombok.version>

        <mybatis.starter.version>1.3.2</mybatis.starter.version>
        <mapper.starter.version>2.0.2</mapper.starter.version>

        <jjwt.version>0.7.0</jjwt.version>
        <joda-time.version>2.9.6</joda-time.version>
    </properties>


    <!-- dependencyManagement只是用于限定子项目的jar包的版本,不做实际导包操作   -->
    <dependencies>

        <!--jwt-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>${jjwt.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>${joda-time.version}</version>
        </dependency>

        <!--阿里云oss存储-->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.10.2</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1</version>
        </dependency>


        <!--日期格式化工具-->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.10.1</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>

        <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
        <!--        swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.8.0</version>
        </dependency>


        <!-- springCloud -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <!--        mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <!--        lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.10</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>


    <!-- 私服:下载jar包的位置   -->
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

2.配置文件:

server:
  port: 8085   #端口号
spring:
  #  application:
  #    name: zx-teacher
  datasource:      #连接数据库配置
    url: jdbc:mysql://localhost:3306/file_management?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

配置参考,格式一定要对上!!!
Springboot整合MybatisPlus完成CRUD详细教程!_第1张图片

3.自己写了个vo,统一返回值 仅供参考
Springboot整合MybatisPlus完成CRUD详细教程!_第2张图片

@Data
@AllArgsConstructor
@ApiModel(value = "全局统一返回结果")
public class Result {

    @ApiModelProperty(value = "返回码")
    private Integer code;

    @ApiModelProperty(value = "返回消息")
    private String message;

    @ApiModelProperty(value = "是否成功")
    private boolean success;

    @ApiModelProperty(value = "返回数据")
    private HashMap<String, Object> result = new HashMap<>();

    //私有化,不能new 只调用以下方法
    public Result() {
    }

    ;

    //调用成功方法
    public static Result ok() {
        Result r = new Result();//调用自己私有构造方法
        r.setSuccess(true);
        r.setCode(ResultCode.OK);
        r.setMessage("成功");
        return r;
    }

    //失败调用方法
    public static Result error() {
        Result r = new Result();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }

    //调用message 修改信息
    public Result message(String message) {
        this.setMessage(message);
        return this;
    }

    //修改状态码
    public Result code(Integer code) {
        this.setCode(code);
        return this;
    }

    //data数据
    public Result result(String key, Object value) {
        this.result.put(key, value);
        return this;
    }

    // 两个data方法名一样,参数不同,重载
    public Result result(HashMap<String, Object> map) {
        this.setResult(map);
        return this;
    }


}
//状态码返回类
public interface ResultCode {
    //接口中只能定义常量    public static final可省略,且常量字母大写
    public static final int OK = 200;//成功
    public static final int ERROR = 500;//失败
}

4. 准备工作完毕 进入正题!
javabean实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
//文件管理实体类类
public class Manage {

    /**
     * 自增id
     */
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
     
    private String folordName;
 }

创建mapper接口

//mapper接口
@Mapper
// 继承BaseMapper  使用mybatis-pubs完成crud操作
public interface ManageMapper extends BaseMapper<Manage> {
}

service类 (javabean类就不发了)

@Service
@Transactional
//继承ServiceImpl ,ServiceImpl中继承了BaseMapper  BaseMapper自带crud方法.后续直接调用方法即可完成crud  这也是mybatis-plus比mybatis强大之处
public class ManagerService extends ServiceImpl<ManageMapper, Manage> {
}

controller

1.查询所有:

@RestController
@RequestMapping("/fileManagement")//根路径
public class ManageController {

    //引入service
    @Resource
    private ManagerService service;
    
    @GetMapping("/list")
    public Result findAll() {
        try {
            //获取所有数据
            List<Manage> list = service.list(null);
            //成功,返回数据
            return Result.ok().result("list", list);
        } catch (Exception e) {
            e.printStackTrace();
            //失败,返回错误信息
            return Result.error();
        }
    }
  


postman测试下!
Springboot整合MybatisPlus完成CRUD详细教程!_第3张图片
测试成功!

2. 新增:

    @PostMapping("/created")
    public Result created(@RequestBody Manage manage) {
        try {
            //添加数据
            service.save(manage);
            //成功,返回结果
            return Result.ok();
        } catch (Exception e) {
            //失败返回信息
            e.printStackTrace();
            return Result.error();
        }
    }

postman测试下
Springboot整合MybatisPlus完成CRUD详细教程!_第4张图片
3.修改

    @PutMapping("/update")
    public Result update(@RequestBody Manage manage) {
        //更新文件信息并更新
        boolean flag = service.updateById(manage);
        //判断 flag为true 成功, 否则失败
        if (flag) {
            //返回删除成功
            return Result.ok().message("更新成功");
        }
        //返回删除失败信息
        return Result.error();
    }

测试: Springboot整合MybatisPlus完成CRUD详细教程!_第5张图片
4.删除

    @DeleteMapping("/delete/{id}")
    public Result delete(@PathVariable("id") Integer id) {
        //根据id单个删除
        boolean flag = service.removeById(id);
        //判断 flag为true 成功, 否则失败
        if (flag) {
            //返回删除成功
            return Result.ok().message("删除成功");
        }
        //返回删除失败信息
        return Result.error();
    }

测试:

Springboot整合MybatisPlus完成CRUD详细教程!_第6张图片
5.id查询

    @GetMapping("/byId/{id}")
    public Result findID(@PathVariable("id") Integer id) {
        Manage byId = service.getById(id);
        return Result.ok().result("byId", byId);
    }

测试
Springboot整合MybatisPlus完成CRUD详细教程!_第7张图片
这只是mybatis-plus的入门,
关于mybatis-plus 有一篇文章给大家分享
链接

你可能感兴趣的:(springboot,spring,boot)