亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot?vue項(xiàng)目管理后端實(shí)現(xiàn)接口新增

 更新時間:2022年05月27日 10:39:02   作者:把蘋果咬哭的測試筆記  
這篇文章主要為大家介紹了springboot?vue項(xiàng)目管理后端實(shí)現(xiàn)接口新增,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

基于 springboot+vue 的測試平臺開發(fā)繼續(xù)更新。

接下來開發(fā)項(xiàng)目管理,是一個很常規(guī)的功能:有列表頁、查詢、新增、編輯,刪除暫時先不做。

首先來做新增項(xiàng)目的功能,先實(shí)現(xiàn)后端接口。

一、編寫實(shí)體類 Project

定義實(shí)體類的屬性,對應(yīng)著數(shù)據(jù)庫對應(yīng)表里的字段。

package com.pingguo.bloomtest.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.util.Date;
@Data
public class Project {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String projectName;
    private String description;
    @TableField(fill = FieldFill.INSERT)        // 新增的時候填充數(shù)據(jù)
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE) // 新增或修改的時候填充數(shù)據(jù)
    private Date updateTime;
    private String createUser;
}

二、創(chuàng)建數(shù)據(jù)表

CREATE TABLE `project` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
  `projectName` varchar(30) DEFAULT NULL COMMENT '項(xiàng)目名稱',
  `description` varchar(255) DEFAULT NULL COMMENT '描述',
  `createTime` datetime NOT NULL DEFAULT '1900-01-01 00:00:00' COMMENT '創(chuàng)建時間',
  `updateTime` datetime NOT NULL DEFAULT '1900-01-01 00:00:00' COMMENT '更新時間',
  `createUser` varchar(30) DEFAULT NULL COMMENT '創(chuàng)建人',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='項(xiàng)目表';

修改 application.properties 中的配置

# mybatis-plus,關(guān)閉自動轉(zhuǎn)化駝峰和下劃線
mybatis-plus.configuration.map-underscore-to-camel-case=false

這里添加一個 mybatis-plus 的配置,默認(rèn) true,設(shè)置為 false 。

true:比如 Project 類中的屬性 projectName,映射到表里的字段名就是 project_name 。

false:關(guān)閉自動轉(zhuǎn)化駝峰和下劃線,projectName 映射到表里還是 projectName 。

三、編寫 ProjectDAO 接口

package com.pingguo.bloomtest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pingguo.bloomtest.pojo.Project;
import org.springframework.stereotype.Repository;
@Repository
public interface ProjectDAO extends BaseMapper<Project> {
}

四、編寫 ProjectService 類

在這里,實(shí)現(xiàn)添加項(xiàng)目的方法。

package com.pingguo.bloomtest.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.pingguo.bloomtest.common.BtException;
import com.pingguo.bloomtest.dao.ProjectDAO;
import com.pingguo.bloomtest.pojo.Project;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class ProjectService {
    @Autowired
    ProjectDAO projectDAO;
    public void addProject(Project project) {
        if (StringUtils.isBlank(project.getProjectName())) {
            BtException.throwException("項(xiàng)目名稱為空");
        }
        QueryWrapper<Project> wrapperProject = new QueryWrapper<>();
        wrapperProject.eq("projectName", project.getProjectName());
        if (projectDAO.selectCount(wrapperProject) != 0) {
            BtException.throwException("項(xiàng)目名稱已存在");
        }
        project.setCreateTime(new Date());
        project.setUpdateTime(new Date());
        projectDAO.insert(project);
    }
}

注意,在這里加入了新的代碼,比如BtException.throwException("項(xiàng)目名稱為空");,當(dāng)項(xiàng)目名稱為空的時候拋出我自定義的異常。

自定義異常類

這里寫了一個自定義異常類 BtException ,方便拋出自定義的異常。

package com.pingguo.bloomtest.common;
public class BtException extends RuntimeException{
    private BtException(String message) {
        super(message);
    }
    public static void throwException(String message) {
        throw new BtException(message);
    }
}

五、編寫 ProjectController 類

編寫控制器類,接收前端過來的請求。

package com.pingguo.bloomtest.controller;
import com.pingguo.bloomtest.common.Result;
import com.pingguo.bloomtest.pojo.Project;
import com.pingguo.bloomtest.service.ProjectService;
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;
@RestController
@RequestMapping("project")
public class ProjectController {
    @Autowired
    ProjectService projectService;
    @PostMapping("/add")
    public Result addProject(@RequestBody Project project) {
        try {
            projectService.addProject(project);
            return Result.success();
        } catch (Exception e) {
            return Result.fail(e.toString());
        }
    }
}

在這里調(diào)用projectService.addProject()方法時候,加了 try catch,來捕獲 service 層拋出的異常,為了統(tǒng)一的返回結(jié)果。

當(dāng)不捕獲時,報錯之后就是這樣:

捕獲之后,就是這樣:

六、測試新增接口 /project/add

正常新增的場景。

重復(fù)新增的場景。

入?yún)㈨?xiàng)目名稱為空。

刷新數(shù)據(jù)表。

數(shù)據(jù)新增成功。

以上就是springboot vue項(xiàng)目管理后端實(shí)現(xiàn)接口新增的詳細(xì)內(nèi)容,更多關(guān)于springboot vue后端接口新增的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中@Accessors注解的具體使用

    Java中@Accessors注解的具體使用

    @Accessors是Lombok提供的注解之一,用于自動生成getter和setter方法,本文主要介紹了@Accessors注解的常用屬性,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Spring 開發(fā)過程中Value 注解的使用場景

    Spring 開發(fā)過程中Value 注解的使用場景

    這篇文章主要介紹了Spring 開發(fā)過程中Value 注解的使用場景,幫助大家更好的理解和使用spring框架,感興趣的朋友可以了解下
    2020-11-11
  • Java中static和static?final的區(qū)別詳解

    Java中static和static?final的區(qū)別詳解

    這篇文章主要介紹了Java中static和static?final的區(qū)別詳解,開發(fā)時我們經(jīng)常用到static以及static?final來修飾我們的字段變量,那么他們到底有什么區(qū)別呢?其實(shí)他們的區(qū)別可以用使用字節(jié)碼文件來解析,需要的朋友可以參考下
    2023-10-10
  • Java 靜態(tài)綁定與動態(tài)綁定深入分析

    Java 靜態(tài)綁定與動態(tài)綁定深入分析

    這篇文章主要介紹了Java 靜態(tài)綁定與動態(tài)綁定深入分析的相關(guān)資料,這里對java 的動態(tài)綁定和靜態(tài)綁定做了詳細(xì)的介紹,對其進(jìn)行總結(jié)整理,需要的朋友可以參考下
    2016-11-11
  • postman中實(shí)現(xiàn)傳遞@RequestBody參數(shù)

    postman中實(shí)現(xiàn)傳遞@RequestBody參數(shù)

    這篇文章主要介紹了postman中實(shí)現(xiàn)傳遞@RequestBody參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Spring boot多線程配置方法

    Spring boot多線程配置方法

    這篇文章主要為大家詳細(xì)介紹了Spring boot多線程配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • java 算法之希爾排序詳解及實(shí)現(xiàn)代碼

    java 算法之希爾排序詳解及實(shí)現(xiàn)代碼

    這篇文章主要介紹了java 算法之希爾排序詳解及實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • SpringDataJPA之Specification復(fù)雜查詢實(shí)戰(zhàn)

    SpringDataJPA之Specification復(fù)雜查詢實(shí)戰(zhàn)

    這篇文章主要介紹了SpringDataJPA之Specification復(fù)雜查詢實(shí)戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中的LinkedHashSet源碼解讀

    Java中的LinkedHashSet源碼解讀

    這篇文章主要介紹了Java中的LinkedHashSet源碼解讀,LinkedHashSet?是?Java?中的一個集合類,它是?HashSet?的子類,并實(shí)現(xiàn)了?Set?接口,與?HashSet?不同的是,LinkedHashSet?保留了元素插入的順序,并且具有?HashSet?的快速查找特性,需要的朋友可以參考下
    2023-09-09
  • 推薦史上最全的IDEA好用插件

    推薦史上最全的IDEA好用插件

    學(xué)會這些Idea插件敲代碼也是一種享受,分享史上最全的IDEA好用插件,可以幫助我們提高工作開發(fā)效率,對于開發(fā)人員很有幫助,感興趣的朋友開來看看吧
    2021-03-03

最新評論