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/

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