坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1

一直想要尝试自己写写笔记,搭搭框架,搞一套从0到1从头到尾的知识体系,却总是各种原因没有怎么开始,想起室友贵哥说的,多学多写,今天开始尝试看看,最近朋友圈"各种坚持XXX多少天",我也来试试!!

本文主要涉及:MySQL 5.x,SpringBoot 2.x,MyBatis-Plus 3.1.1,Maven 3.x等

1.理论简介

MyBatis及MyBatis-Plus简介

  • 【MyBatis简介】MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
  • 【MyBatis-plus简介】MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

SpringBoot简介

  • Spring Boot让您更简单的创建基于Spring的独立的,生产级的可运行“应用程序”。 对于Spring平台和第三方库,我们采取一种“强制性”的观点,以至于您可以更加轻松的开始使用。 大部分Spring Boot应用程序只需要一点点Spring的配置即可。

IDEA开发工具简介

  • IDEA,全称 IntelliJ IDEA,是 Java 语言的集成开发环境,IDEA 在业界被公认为是最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。

Maven简介

Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目

2.软件安装

系统说明:window 10,Java,Apache Maven 3.5.0,SpringBoot 2.1.5(Idea默认) ,H2(一个开源的、纯java实现的关系数据库),MyBatis-plus 3.1.1

3.项目搭建

  1. 启动IDEA,选择:File->new->Project,在弹窗中选择Spring Initializr,如下图:
    坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第1张图片
    图 3-1 创建项目

    基本上都默认选中,点击Next
    2.根据个人习惯和规范输入Group,Artifact设置Package等,第一次搭建可以直接默认,点击****Next***,如下图:
    坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第2张图片
    图 3-2 设置项目包信息

3.设置依赖包,在弹窗中可以根据需要设置依赖包,这里我暂时只选择:Core->Lombok(使用Lombok记得要安装Idea插件

坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第3张图片
图 3-3-1 选择依赖包

Web->Web

坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第4张图片
图 3-3-2 选择依赖包

SQL->H2

坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第5张图片
图 3-3-3 选择依赖包

选择好依赖包后点击Next

4.确认项目名称及路径无误,点击Finish

坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第6张图片
图 4-1完成创建

因为第一次写,所以赘述了一下项目创建过程!SpringBoot的基础知识本文不作记录若有需要请参考:SpringBoot知识
创建完成后,项目基本结构如下图:

坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第7张图片
项目结构图

  1. 引入MyBatis-Plus,打开项目maven配置文件pom.xml,添加MyBatis-Plus依赖:
  
            com.baomidou
            mybatis-plus-boot-starter
            3.1.1

6.配置myabtis-plus,修改默认的application.properties为application.yml(个人习惯使用yml配置),添加数据库的配置与mybatis-plus配置


坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第8张图片
application.yml配置
坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第9张图片
MybatisPlusConfig.java

7.然后创建对应得model(我放在了domain目录),Mapper,service,及Controller具体见代码,

  • User.java
package com.cooper.module.user.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 用户信息
 */
@Data
public class User {

    @TableId(value = "id",type = IdType.ID_WORKER)
    private Long id;

    @TableField("name")
    private String name;

    @TableField("age")
    private Integer age;

    @TableField("email")
    private String email;

    @TableField("create_time")
    private LocalDateTime createTime;
}
  • UserMapper.java
package com.cooper.module.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cooper.module.user.domain.User;

public interface UserMapper extends BaseMapper {
}
  • IUserService.java 和 UserServieImpl.java
package com.cooper.module.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cooper.module.user.domain.User;

public interface IUserService extends IService {
}

/** ------------------------------------------------------------------------------------------**/

package com.cooper.module.user.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cooper.module.user.domain.User;
import com.cooper.module.user.mapper.UserMapper;
import com.cooper.module.user.service.IUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional
public class UserServiceImpl extends ServiceImpl implements IUserService {

} 
  • UserController.java
package com.cooper.module.user.controller;

import com.cooper.module.user.domain.User;
import com.cooper.module.user.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;


    @RequestMapping("/list")
    @ResponseBody
    public List listOfUser(){
        return userService.list();
    }
} 

太晚了不写明细了,后续完善。
从上面我们可以MP带来了好处就是基本的单表操作是可以不写任何SQL与Dao层代码的,甚至如果不涉及复杂业务的连service也省了【有人可能就会说JPA不就是这样的吗?其实我不是很清楚,JPA用的不多,个人只是觉得mybatis更灵活点,而mp正如它的描述,只做增强不做改变,为简化开发、提高效率而生,解放你的双手。

    当然他们肯定是各有优势的,根据自己的需求选择,适合自己的才是最好的
    启动后可以查看SpringBoot及MybatisPlus对应日志版本信息;

坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第10张图片
项目启动

附上简单查询所有接口效果:


坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1_第11张图片
简单的查询接口

第一次写诸多不完善的地方望见谅,主要做为学习笔记记录,最后附上项目代码地址
以上就是作为一个JAVA菜鸟的第一次学习笔记总结了,若有缘人看到欢迎批评指正,相互学习,相互进步!

你可能感兴趣的:(坚持学习第一天:SpringBoot 2.x整合mybatis-plus 3.1.1)