IDEA-SpringBoot整合快速MyBatisPlus(一)

簡介

MyBatis-Plus(簡稱 MP)是一個 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,爲簡化開發、提高效率而生。
這是官方闡述,我就不廢話了,直接上代碼和乾貨

開始整合

GItHUB 項目地址:https://github.com/564580134/MyBatisPlus

創建項目

  • File ->new ->project -project initializr
  • 項目名稱: mybatis_plus
  • 包路徑: com.mybatis_plus
    在這裏插入圖片描述

下面我們開始進行application.yml、model、mapper、service、serviceImpl、controller的創建維護工作

1、pom.xml
<?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>
    <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.mybatis_plus</groupId>
    <artifactId>mybatis_plus</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatis_plus</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </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>
        <!-- Druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.16</version>
        </dependency>
        <!-- mybatis-plus SpringBoot整合 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1</version>
        </dependency>

    </dependencies>

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

</project>

2、model

package com.mybatis_plus.model;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @Description: 用戶信息
 * @Author: LiuRunYong
 * @Date: 2020/4/22
 **/


@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@TableName(value = "user")
public class UserModel implements Serializable {

    /**
     * 用戶主鍵
     */
    private Integer userId;

    /**
     * 用戶名
     */
    private String userName;

    /**
     * 用戶賬號
     */
    private String account;

    /**
     * 用戶密碼
     */
    private String password;

    /**
     * 用戶電話
     */
    private String phone;

    /**
     * 用戶性別(0:男,1:女)
     */
    private Integer sex;

    /**
     * 用戶年齡
     */
    private Integer age;

    /**
     * 用戶狀態
     */
    private Integer status;
}

3、mapper

  • 此處需要贅述一下 如果要使用MyBatisPlus插件 那就在mapper 接口集成一下BaseMapper<實體Bean>
  • 這樣的你mapper接口 就具備了CRUD功能
package com.mybatis_plus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatis_plus.model.UserModel;

/**
 * @Description:
 * @Author: LiuRunYong
 * @Date: 2020/4/22
 **/
public interface UserMapper extends BaseMapper<UserModel> {

}

4、service

package com.mybatis_plus.service;

import com.mybatis_plus.model.UserModel;

import java.util.List;

/**
 * @Description:
 * @Author: LiuRunYong
 * @Date: 2020/4/22
 **/
public interface UserService {

    /**
     * 查詢所有用戶信息
     *
     * @return list
     */
    List<UserModel> selectALlUserList();
}

5、serviceImpl

package com.mybatis_plus.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mybatis_plus.mapper.UserMapper;
import com.mybatis_plus.model.UserModel;
import com.mybatis_plus.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Description:
 * @Author: LiuRunYong
 * @Date: 2020/4/22
 **/

@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements UserService {

    final UserMapper userMapper;

    public UserServiceImpl(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    @Override
    public List<UserModel> selectALlUserList() {
        return userMapper.selectList(new QueryWrapper<>());
    }
}

6、controller

package com.mybatis_plus.controller;

import com.mybatis_plus.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @Description:
 * @Author: LiuRunYong
 * @Date: 2020/4/22
 **/
@Slf4j
@RestController
@RequestMapping("/user/")
public class UserController {


    final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }


    @GetMapping("list")
    public Map<String, Object> listAll() {
        Map<String, Object> result = new HashMap<>();
        result.put("code", 200);
        result.put("data", userService.selectALlUserList());
        result.put("msg", "success");
        return result;

    }


}

7、application.yml

# 服務端口號
server:
  port: 10324

# 數據庫相關配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:10224/mybatis_plus?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: 用戶
    password: 密碼

激動人心的測試

在這裏插入圖片描述
在這裏插入圖片描述

OK到此就算把MyBatisPlus和SpringBoot整合成功,下一篇我們及介紹怎麼使用更牛的 CRUD

備註: 此係列以後周更新一次 討論羣聊

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章