Springboot单体架构搭建|第三章 springboot集成mybatis-plus

前言

该架构是参考公司原架构做了优化,计划慢慢从0开始完全独立自己搭建一个基于springboot的restful服务后台架构,并且完全后端分离。系列文章所涉及的项目源码都放在了个人github上,关于前端我采用vue,后期会写在其他文章中。
本人的github地址:https://github.com/jokerliuli
接上一章,本文开始springboot集成mybatis-plus

mybatis

mybatis,作为dao层大哥大框架,可以说是目前使用率最高的。面试的时候也几乎是必问的一项(底层源码如果能看懂差不多就能敲门HAT了),关于它的详细信息这篇文章不再过多介绍,我这篇文章是在各位同学已经学会mybatis的基础上展开。

mybatis-plus

我们直接进入mybatis-plus
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是MP官网的介绍,很简单很准确,按照我个人理解,MP其实是MyBatis模仿JPA的,然后对tkmap(通用mapper)的一种升级。
什么是JPA呢,这边简单介绍一下就是一个dao层的ORM框架规则,spring-data-jpa就是jpa的一个实现,jpa旨在减少sql,直接通过接口的命名就自动映射拼接sql。有兴趣的同学可以去自学一下,这边也不多介绍了。
MP很好的继承了tk的通用接口(单表的增删改查),然后在此基础上有自己的条件构造器(类似jpa的地方),最后还有自己的代码生成器。这些在官网的guide里写的很清晰,建议结合guide一起看这篇文章。
先在pom中引入:

        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.6</version>
        </dependency>

如果需要用到MP的代码生成还需要引入freemarker 模板引擎:

        <!-- freemarker 模板引擎 -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>

再来看MP的教程
在这里插入图片描述

看到这个用过tk的同学应该已经懂了,这个dao层有现成的写好的很多CRUD接口,我们只需要extends BaseMapper,直接点就能用。

实战

假如我们有一个Information表,我们怎么对其完成增删改查的restful接口呢?
目录如下:

在这里插入图片描述
InformationController

package com.jokerliu.manage.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.web.bind.annotation.RequestMapping;
import lombok.extern.slf4j.Slf4j;
import com.jokerliu.enums.Result;
import com.jokerliu.enums.ResultStatusCode;
import javax.annotation.Resource;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jokerliu.manage.service.IInformationService;
import com.jokerliu.manage.entity.Information;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 资讯表 前端控制器
 * </p>
 *
 * @author JokerLiu
 * @since 2019-03-18
 */
@Slf4j
@RestController
@RequestMapping("/manage/information")
public class InformationController {

    @Resource
    private  IInformationService iInformationService;

    /**
    * 单个新增
    * @param information  传递的实体
    * @return Result
    */
    @PostMapping("save")
    public Result save(@RequestBody Information information){
        //log.info(information.toString());
        return new Result(ResultStatusCode.OK,iInformationService.save(information));
    }

    /**
    * 单个删除
    * @param information  传递的实体
    * @return Result
    */
    @PostMapping("remove")
    public Result remove
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值