SpringBoot整合MybatisPlus实现简单的crud操作

第一步:创建SpringBoot项目

可以使用 Spring Initializer 快速初始化一个 Spring Boot 工程

网址:https://start.spring.io
在这里插入图片描述

引入web,mysql等依赖,generate之后直接解压引入IDEA即可

第二步:添加MybatisPlus等依赖,直接在pom.xml文件中加入以下依赖即可


```java
<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>3.3.0</version>
</dependency>

第三步:新建数据库,数据表

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

第四步:基本文件结构如下:简单分为以下三个简单结构:controller(逻辑层),domain(实体类),mappper(dao层,数据库操作)
在这里插入图片描述
第五步:编写各层代码
domain层:
//User.java //实体类,数据库User表的映射

package cn.ickck.mybatis_plus.domain;

/**
 * @ClassName User
 * @Description TODO
 * @Author ck
 * @Date 2020/1/8 11:26
 * @Version 1.0
 **/
public class User {
    private int id;
    private  String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

//JsonDate.java 字符串转JSON,方便前后端交互

package cn.ickck.mybatis_plus.domain;

import java.io.Serializable;

/**
 * @ClassName JsonData
 * @Description TODO
 * @Author ck
 * @Date 2019/12/28 16:02
 * @Version 1.0
 **/
public class JsonData implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer code; // 状态码 0 表示成功,1表示处理中,-1表示失败
    private Object data; // 数据
    private String msg;// 描述

    public JsonData() {
    }

    public JsonData(Integer code, Object data, String msg) {


        this.code = code;
        this.data = data;
        this.msg = msg;
    }

    // 成功,传入数据
    public static JsonData buildSuccess() {
        return new JsonData(0, null, null);
    }

    // 成功,传入数据
    public static JsonData buildSuccess(Object data) {
        return new JsonData(0, data, null);
    }

    // 失败,传入描述信息
    public static JsonData buildError(String msg) {
        return new JsonData(-1, null, msg);
    }

    // 失败,传入描述信息,状态码
    public static JsonData buildError(String msg, Integer code) {
        return new JsonData(code, null, msg);
    }

    // 成功,传入数据,及描述信息
    public static JsonData buildSuccess(Object data, String msg) {
        return new JsonData(0, data, msg);
    }

    // 成功,传入数据,及状态码
    public static JsonData buildSuccess(Object data, int code) {
        return new JsonData(code, data, null);
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "JsonData [code=" + code + ", data=" + data + ", msg=" + msg
                + "]";
    }

}

//mapper层
//MybatisPlus相比mybatis最大的优势就在于mapper层,不用自己写sql,实在是太舒服了
//UserMappe.interface

package cn.ickck.mybatis_plus.mapper;

import cn.ickck.mybatis_plus.domain.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * @ClassName UserMapper
 * @Description TODO
 * @Author ck
 * @Date 2020/1/8 11:27
 * @Version 1.0
 **/
public interface UserMapper extends BaseMapper<User> {    //只需要继承MybatisPlus中自带BaseMappe类,里面有各种已经实现的方法,只需要调用就行,建议学习一下源码
}

//controller层编写
//简单测试一下使用

package cn.ickck.mybatis_plus.controller;

import cn.ickck.mybatis_plus.domain.JsonData;
import cn.ickck.mybatis_plus.domain.User;
import cn.ickck.mybatis_plus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @ClassName UserController
 * @Description TODO
 * @Author ck
 * @Date 2020/1/8 11:47
 * @Version 1.0
 **/
@RestController
@RequestMapping("/pub")
public class UserController {
    @Autowired
    public UserMapper userMapper;

    @RequestMapping("/findById")
    JsonData findAllUser(int id)  //通过id查询数据
    {
        return JsonData.buildSuccess(userMapper.selectById(id));

    }


    @PostMapping("/insert")   //插入数据
    void Insert(@RequestBody User user)
    {
        userMapper.insert(user);
    }


    @PostMapping("/update")  //更新数据
    void update(@RequestBody User user)
    {
        userMapper.updateById(user);
    }

    @RequestMapping("/delete")  //根据id删除数据
    void delete(int id)
    {
        userMapper.deleteById(id);  
    }

    @RequestMapping("/ListAll") //查询所有数据
    JsonData ListALl()
    {
        return JsonData.buildSuccess(userMapper.selectList(null));
    }

}

第六步:基本配置的编写
1.在启动类中加入mapper文件的扫描

package cn.ickck.mybatis_plus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("cn.ickck.mybatis_plus.mapper") //mapper文件的路径,springboot项目启动时会自动扫描这个包
public class MybatisPlusApplication {

	public static void main(String[] args) {
		SpringApplication.run(MybatisPlusApplication.class, args);
	}

}

2.数据库配置 application.properties里进行修改

server.port=8082  //启动时候的端口号
#==============================数据库相关配置========================================
spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false  //ip:端口号:数据库名

spring.datasource.username =root  //数据库用户名
spring.datasource.password =123456 //数据库密码

最近做毕业设计学习了一下MybatisPlus,发现的确十分好用,不过还需要深入学习一下其它复杂使用
下面为PostMan做的测试截图
1.查询所有
在这里插入图片描述
2.根据id查询
在这里插入图片描述
3.修改数据
在这里插入图片描述
4.有点懒,有些接口测试图片就不放上面了,可自行测试

注:联系方式:qq:839567748(欢迎大妹子一起交流学习)
GitHub项目地址:https://github.com/handsomeboyck/MyBatisPlus-
MyBatisPlus官网地址:https://mp.baomidou.com/guide/

发布了15 篇原创文章 · 获赞 29 · 访问量 3147

猜你喜欢

转载自blog.csdn.net/qq_42338771/article/details/103898860