SpringBootspring boot

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

2019-05-16  本文已影响18人  醉枫浅墨

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

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

1.理论简介

MyBatis及MyBatis-Plus简介

SpringBoot简介

IDEA开发工具简介

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,如下图:
    图 3-1 创建项目
    基本上都默认选中,点击Next
    2.根据个人习惯和规范输入Group,Artifact设置Package等,第一次搭建可以直接默认,点击****Next***,如下图:
    图 3-2 设置项目包信息

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

图 3-3-1 选择依赖包

Web->Web

图 3-3-2 选择依赖包

SQL->H2

图 3-3-3 选择依赖包

选择好依赖包后点击Next

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

图 4-1完成创建

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

项目结构图
  1. 引入MyBatis-Plus,打开项目maven配置文件pom.xml,添加MyBatis-Plus依赖:
  <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.1</version>
</dependency>

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


application.yml配置 MybatisPlusConfig.java

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

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;
}
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<User> {
}
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<User> {
}

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

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<UserMapper, User> implements IUserService {

} 
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<User> listOfUser(){
        return userService.list();
    }
} 

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

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

项目启动

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


简单的查询接口

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

上一篇 下一篇

猜你喜欢

热点阅读