SpringBoot整合MybatisPlus,并实现新增、修改、删除、查看、分页

在pom.xml中引入mybatis plus的jar包

        <!-- mybatis plus依赖包 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.0</version>
        </dependency>

在resources/application.yml配置文件中配置数据库

#配置数据库
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jeff?characterEncoding=utf8
    username: root
    password: mysql

创建BaseEntity实体类

package com.jeff.mybatis.plus.entity;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.Data;

@Data
public class BaseEntity {

    // 主键
    @TableId(type = IdType.AUTO)
    private Long id;

    // 创建时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    // 创建人
    private String createName;

    // 修改时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date modifyTime;

    // 修改人
    private String modifyName;

}

创建User实体类

package com.jeff.mybatis.plus.entity;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeff.mybatis.plus.utils.DateUtils;

import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@TableName("sys_user")
@EqualsAndHashCode(callSuper = false)
public class User extends BaseEntity {

    // 登陆名
    private String loginName;

    // 密码
    private String password;

    // 盐
    private String salt;

    // 性别(0:保密;1:男;2:女)
    private Integer sex;

    // 状态(0:有效;1:无效)
    private Integer status;

    // 真实姓名
    private String name;

    // 昵称
    private String nickName;

    // 手机号
    private String phone;

    // 邮箱
    private String email;

    // 生日
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern = DateUtils.SHORT_TIME_FORMAT)
    @JsonFormat(pattern = DateUtils.SHORT_TIME_FORMAT, timezone = "GMT+8")
    private Date birthday;

    // 用户头像
    private String headimgUrl;

}

创建UserMapper

package com.jeff.mybatis.plus.mapper;

import org.apache.ibatis.annotations.Mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeff.mybatis.plus.entity.User;

@Mapper
public interface UserMapper extends BaseMapper<User> {

}

创建UserService

package com.jeff.mybatis.plus.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jeff.mybatis.plus.entity.User;
import com.jeff.mybatis.plus.entity.request.PageEntity;
import com.jeff.mybatis.plus.entity.request.UserParam;

public interface UserService extends IService<User> {

    boolean isExist(User user);

    Page<User> getList(PageEntity page, UserParam param);

}

创建UserServiceImpl

package com.jeff.mybatis.plus.service.impl;

import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jeff.mybatis.plus.entity.User;
import com.jeff.mybatis.plus.entity.request.PageEntity;
import com.jeff.mybatis.plus.entity.request.UserParam;
import com.jeff.mybatis.plus.mapper.UserMapper;
import com.jeff.mybatis.plus.service.UserService;
import com.jeff.mybatis.plus.utils.DateUtils;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    @Override
    public Page<User> getList(PageEntity pageEntity, UserParam param) {
        Page<User> page = new Page<User>(pageEntity.getPage(), pageEntity.getRows());
        QueryWrapper<User> wrapper = new QueryWrapper<User>();
        if (StringUtils.isNotBlank(param.getLoginName())) {
            wrapper.eq("login_name", param.getLoginName());
        }
        if (StringUtils.isNotBlank(param.getName())) {
            wrapper.like("name", param.getName());
        }
        if (param.getStartDate() != null) {
            wrapper.ge("create_time", DateUtils.getStartOfDay(param.getStartDate()));
        }
        if (param.getEndDate() != null) {
            wrapper.lt("create_time", DateUtils.getEndOfDay(param.getEndDate()));
        }
        wrapper.orderByDesc("id");
        return page(page, wrapper);
    }

    @Override
    public boolean isExist(User user) {
        QueryWrapper<User> wrapper = new QueryWrapper<User>();
        wrapper.eq("login_name", user.getLoginName());
        if (user.getId() != null) {
            wrapper.ne("id", user.getId());
        }
        return count(wrapper) > 0;
    }

}

创建UserController

package com.jeff.mybatis.plus.controller;

import java.util.Date;

import org.apache.commons.lang3.Validate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jeff.mybatis.plus.common.Constant;
import com.jeff.mybatis.plus.entity.User;
import com.jeff.mybatis.plus.entity.request.PageEntity;
import com.jeff.mybatis.plus.entity.request.UserParam;
import com.jeff.mybatis.plus.enums.ResponseCodes;
import com.jeff.mybatis.plus.service.UserService;
import com.jeff.mybatis.plus.utils.ResultsUtils;

@CrossOrigin("*")
@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    private UserService service;

    /**
     *
     * @description: 新增用户
     * @author: Jeff
     * @param user
     * @return
     */
    @PostMapping("add")
    public Object add(User user) {
        if (service.isExist(user)) {
            return ResultsUtils.fail(ResponseCodes.PARAMTER_ERROR, "登录名重复,请重新输入");
        }
        user.setCreateTime(new Date());
        user.setCreateName("Jeff");
        service.save(user);
        return ResultsUtils.success();
    }

    /**
     *
     * @description: 修改用户
     * @author: Jeff
     * @param user
     * @return
     */
    @PostMapping("update")
    public Object update(User user) {
        Validate.notNull(user.getId(), Constant.CHECK_MESSAGE, "用户id");
        if (service.isExist(user)) {
            return ResultsUtils.fail(ResponseCodes.PARAMTER_ERROR, "登录名重复,请重新输入");
        }
        user.setModifyTime(new Date());
        user.setModifyName("Jeff");
        service.updateById(user);
        return ResultsUtils.success();
    }

    /**
     *
     * @description: 删除用户
     * @author: Jeff
     * @param id
     * @return
     */
    @RequestMapping("delete")
    public Object delete(Long id) {
        Validate.notNull(id, Constant.CHECK_MESSAGE, "用户id");
        service.removeById(id);
        return ResultsUtils.success();
    }

    /**
     *
     * @description: 查看用户
     * @author: Jeff
     * @param id
     * @return
     */
    @RequestMapping("getById")
    public Object getById(Long id) {
        Validate.notNull(id, Constant.CHECK_MESSAGE, "用户id");
        return ResultsUtils.success(service.getById(id));
    }

    /**
     *
     * @description: 获取用户列表(分页)
     * @author: Jeff
     * @param page
     * @return
     */
    @RequestMapping("getList")
    public Object getList(PageEntity pageEntity, UserParam param) {
        Page<User> page = service.getList(pageEntity, param);
        return ResultsUtils.success(page.getRecords(), page.getTotal());
    }

}

创建MybatisPlus分页配置类MybatisPlusConfig

package com.jeff.mybatis.plus.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;

/**
 *
 * @description: MybatisPlus分页配置类
 * @author: Jeff
 */
@Configuration
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

}

打开浏览器访问 http://localhost:9001/user/getList?page=1&rows=5

原文地址:https://www.cnblogs.com/jiefu/p/12501434.html

时间: 2024-11-05 22:47:08

SpringBoot整合MybatisPlus,并实现新增、修改、删除、查看、分页的相关文章

SpringBoot 整合 MyBatis-Plus 入门体验

一.前言 本文小编将基于 SpringBoot 整合 MyBatis-Plus , MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上做增强并且不改变原本功能 ~ 二.SpringBoot整合MyBatis-Plus 基本环境 spring-boot 2.1.8 mybatis-plus 2.2.0 mysql 5.7.24 maven项目 1.pom.xml中引入MyBatis-Plus相关依赖 下面直接贴出小编的整个文件内容以作参考,避免因为部分细节缺

MYSQL基础01(新增,修改,删除)

首先说明一下,本人之前一直都是用MSSQL,由于工作原因,每天写上百条sql语句,并持续了几年;由于换了工作目前主要接触的MYSQL;所以现在开始学习MYSQL. 我的学习计划很简单,我在MSSQL使用或学习到的功能,都会尝试在MYSQL实现,所以如果我都尝试了一遍,我认为MYSQL的使用也学的差不多了,当然工作中遇到的问题和解决经验也会总结下来. 刚开始工作中最首先使用的也是最常用的当然就是增删改查了,所以第一遍就会介绍MYSQL的新增,修改,删除:查询是很大的一块,所以会另外展开 INSER

SpringBoot整合MyBatis-plus

步骤 第一步:添加必要的依赖 如果想学习Java工程化.高性能及分布式.深入浅出.微服务.Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家. 第一种是在已存在MyBatis的情况下,直接添加mybatis-plus包即可. <dependency><groupId>com.baomidou</groupId><artifactId>

SpringBoot整合MybatisPlus

1. 开发前准备 1.1 前置知识 java基础 SpringBoot简单基础知识 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lombok.MybatisPlus SpringBoot版本:2.1.4 1.3 涉及知识点 MybatisPlus简介.特性.架构 MybatisPlus快速入门 MybatisPlus的基本CRUD MybatisPlus的高级查询:like查询.条件查询.分页查询等 2. MybatisPlus入门 2.

新增修改删除等方法

//创建datatable DataTable dt = new DataTable("个人简历"); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("sex", typeof(int)); dt.Columns.Add("address", typeof(string));

springboot整合mybatis-plus逆向工程

MyBatis-Plus(简称 MP)是一个?MyBatis?的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生.官方文档 代码生成器 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity.Mapper.Mapper XML.Service.Controller 等各个模块的代码,极大的提升了开发效率. mybatis-plus是根据数据库表来生成对应的实体类,首先我们创建数据库表Us

SpringBoot整合MybatisPlus有关条件构造器的相关查询方法

详情或有不足请参考官方文档:https://mp.baomidou.com 最近在学习mybatisPlus时总结了一些常用的有关条件构造器的查询方法,以此做下记录,方便学习使用! eq: 等于 = 例子:eq("name", "老王")--->name = '老王' ne: 不等于 <> 例子:ne("name", "老王")--->name <> '老王' gt: 大于 > 例子:

SpringBoot+Mybatis+MybatisPlus整合实现基本的CRUD操作

SpringBoot+Mybatis+MybatisPlus整合实现基本的CRUD操作 1> 数据准备 -- 创建测试表 CREATE TABLE `tb_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_name` varchar(20) NOT NULL COMMENT '用户名', `password` varchar(20) NOT NULL COMMENT '密码', `name` varchar

git 强制放弃本地修改(新增、删除文件)

放弃本地所有修改.新增.删除文件和目录: git checkout . && git clean -df 注释: git checkout . //放弃本地修改,没有提交的可以回到未修改前版本 git clean //是从工作目录中移除没有track的文件. git clean -df //-d表示同时移除目录,-f表示force,因为在git的配置文件中,clean.requireForce=true,如果不加-f,clean将会拒绝执行. 原文地址:https://www.cnblog