如何借助AI在20分钟内写一个springboot单表的增删改查

目录

  • 1. AI工具介绍
  • 2. 写代码的正确顺序
    • 2.1 编写 Entity 类:
    • 2.2 编写 Mapper 接口:
    • 2.3 编写 Mapper XML 文件(如果使用 MyBatis):
    • 2.4 编写 Service 接口:
    • 2.5 编写 Service 实现类(ServiceImpl):
    • 2.6 编写 Controller 类:
  • 3. 总结

1. AI工具介绍

在idea的插件市场里:
​​​​​在这里插入图片描述

2. 写代码的正确顺序

2.1 编写 Entity 类:

定义与数据库表对应的领域模型类,包括字段、getter 和 setter 方法。
注意:主要确定各个字段的合理性,sql对于的idea上的类型,例如日期Date类,在Java上需要加注解@DateTimeFormat(value = “yyyy-MM-dd”)来固定格式。

package com.goblin.BIbackend.model.entity;

import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 *
 * @TableName install_requests
 */
@TableName(value ="install_requests")
@Data
public class InstallRequests implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     *
     */
    private Long userId;

    /**
     *
     */
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date requestDate;

    /**
     *
     */
    private String status;

    /**
     *
     */
    private String description;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}

2.2 编写 Mapper 接口:

创建与数据库操作相关的接口,使用 MyBatis 或 JPA 等 ORM 框架注解来标识数据库操作。

package com.goblin.BIbackend.mapper;

import com.goblin.BIbackend.model.entity.InstallationProgress;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* @author **
* @description 针对表【installation_progress】的数据库操作Mapper
* @createDate 2024-07-07 00:36:01
* @Entity com.goblin.BIbackend.model.entity.InstallationProgress
*/
public interface InstallationProgressMapper extends BaseMapper<InstallationProgress> {
    public InstallationProgress select1(Long id);
    public void insert1(InstallationProgress installationProgress);
    public void delete1(Long id);
    public void update1(InstallationProgress installationProgress);
}





2.3 编写 Mapper XML 文件(如果使用 MyBatis):

在 XML 文件中编写具体的 SQL 语句和结果映射,与 Mapper 接口中的方法相对应。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.goblin.BIbackend.mapper.InstallRequestsMapper">

    <resultMap id="BaseResultMap" type="com.goblin.BIbackend.model.entity.InstallRequests">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="userId" column="user_id" jdbcType="BIGINT"/>
            <result property="requestDate" column="request_date" jdbcType="DATE"/>
            <result property="status" column="status" jdbcType="VARCHAR"/>
            <result property="description" column="description" jdbcType="VARCHAR"/>
    </resultMap>

    <sql id="Base_Column_List">
        id,user_id,request_date,
        status,description
    </sql>

    <select id="select1" resultMap="BaseResultMap">
            SELECT * FROM install_requests where id = #{id}
    </select>

    <insert id="insert1" parameterType="com.goblin.BIbackend.model.entity.InstallRequests">
            INSERT INTO install_requests (user_id,request_date,status,description)
            VALUES (#{userId},#{requestDate},#{status},#{description})
    </insert>

    <delete id="delete1" parameterType="com.goblin.BIbackend.model.entity.InstallRequests">
            DELETE FROM install_requests where id = #{id}
    </delete>

    <update id="update1" parameterType="com.goblin.BIbackend.model.entity.InstallRequests">
            UPDATE install_requests
            set user_id = #{userId},request_date = #{requestDate},status = #{status},description = #{description}
            WHERE id = #{id}
    </update>
</mapper>

2.4 编写 Service 接口:

定义业务逻辑的接口,声明服务层的方法。

package com.goblin.BIbackend.service;

import com.goblin.BIbackend.model.entity.InstallRequests;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author **
* @description 针对表【install_requests】的数据库操作Service
* @createDate 2024-07-07 00:04:57
*/
public interface InstallRequestsService extends IService<InstallRequests> {
    InstallRequests select2(Long id);
    InstallRequests insert2(InstallRequests installRequests);
    void delete2(Long id);
    InstallRequests update2(InstallRequests installRequests);

}

2.5 编写 Service 实现类(ServiceImpl):

实现 Service 接口中定义的方法,调用 Mapper 接口进行数据访问。

package com.goblin.BIbackend.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.goblin.BIbackend.model.entity.InstallRequests;
import com.goblin.BIbackend.service.InstallRequestsService;
import com.goblin.BIbackend.mapper.InstallRequestsMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
* @author **
* @description 针对表【install_requests】的数据库操作Service实现
* @createDate 2024-07-07 00:04:57
*/

@Service
public class InstallRequestsServiceImpl extends ServiceImpl<InstallRequestsMapper, InstallRequests>
    implements InstallRequestsService{
    @Resource
    private InstallRequestsMapper mapper;

    @Override
    public InstallRequests select2(Long id) {
        return mapper.select1(id);
    }

    @Override
    public InstallRequests insert2(InstallRequests installRequests) {
        mapper.insert1(installRequests);
        return installRequests;
    }

    @Override
    public void delete2(Long id) {
        mapper.delete1(id);
    }

    @Override
    public InstallRequests update2(InstallRequests installRequests) {
        mapper.update1(installRequests);
        return installRequests;
    }

}





2.6 编写 Controller 类:

创建 RESTful API 或 MVC 控制器,处理 HTTP 请求并调用 Service 层。

package com.goblin.BIbackend.controller;

import com.goblin.BIbackend.common.BaseResponse;
import com.goblin.BIbackend.common.ResultUtils;
import com.goblin.BIbackend.model.entity.InstallRequests;
import com.goblin.BIbackend.service.InstallRequestsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@RestController
@RequestMapping("/installRequests")
@Slf4j
public class InstallRequestsController {
    @Resource
    private InstallRequestsService iRS;

    @GetMapping("/select2")
    public BaseResponse<InstallRequests> select2(Long id) {
        log.info("查询电表安装请求: {}", id);
        InstallRequests installRequests = iRS.select2(id);
        return ResultUtils.success(installRequests);
    }

    @PostMapping("/insert2")
    public BaseResponse<InstallRequests> insert2(@RequestBody InstallRequests installRequests) {
        log.info("新增电表安装请求: {}", installRequests);
        InstallRequests insert = iRS.insert2(installRequests);
        return ResultUtils.success(insert);
    }

    @DeleteMapping("/delete2")
    public BaseResponse<Boolean> delete2(Long id) {
        log.info("删除电表安装请求: {}", id);
        iRS.delete2(id);
        return ResultUtils.success(true);
    }

    @PutMapping("/update2")
    public BaseResponse<InstallRequests> update2(@RequestBody InstallRequests installRequests) {
        log.info("更新电表安装请求: {}", installRequests);
        iRS.update2(installRequests);
        return ResultUtils.success(installRequests);
    }
}

3. 总结

这个顺序并不是固定不变的,实际开发过程中可能会根据项目需求和团队习惯进行调整。例如,可以先编写 Controller 层来定义 API 接口,再逆向工程到 Service 层和 Entity 层。over

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/779646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【全面讲解如何安装Jupyter Notebook!】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

智慧校园综合解决方案PPT(41页)

1. 方案背景 智慧校园综合解决方案响应《教育信息化2.0行动计划》等政策&#xff0c;旨在加快智慧校园建设&#xff0c;推动信息化与学习生活的深度融合。目前教育信息化配套设施建设存在“孤岛架构”&#xff0c;学生安全问题频发&#xff0c;技术发展迅速&#xff0c;家长对…

IT高手修炼手册(3)程序员命令

一、前言 程序员在日常工作中&#xff0c;掌握一些高效的快捷键可以大大提高编码和开发效率。 二、通用快捷键 文本操作Ctrl A&#xff1a;全选当前页面内容 Ctrl C&#xff1a;复制当前选中内容 Ctrl V&#xff1a;粘贴当前剪贴板内的内容 Ctrl X&#xff1a;剪切当前选中…

[图解]SysML和EA建模住宅安全系统-11-接口块

1 00:00:00,660 --> 00:00:04,480 接下来的步骤是定义系统上下文 2 00:00:04,960 --> 00:00:07,750 首先是图17.17 3 00:00:09,000 --> 00:00:10,510 系统上下文展示了 4 00:00:10,520 --> 00:00:12,510 ESS和外部系统、用户 5 00:00:12,520 --> 00:00:14,1…

C++初学者指南-4.诊断---地址检测器

C初学者指南-4.诊断—地址检测器 幻灯片 地址检测器&#xff08;ASan&#xff09; 适用编译器g,clang检测内存错误 内存泄露访问已经释放的内存访问不正确的堆栈区域 用额外的指令检测代码 运行时间增加约70%内存使用量大约增加了3倍 示例&#xff1a;检测空指针 使用地址…

leetcode力扣_双指针问题

141. 环形链表 思路&#xff1a;判断链表中是否有环是经典的算法问题之一。常见的解决方案有多种&#xff0c;其中最经典、有效的一种方法是使用 快慢指针&#xff08;Floyd’s Cycle-Finding Algorithm&#xff09;。 初始化两个指针&#xff1a;一个快指针&#xff08;fast&…

100+大屏模板,基于Vue 国产开源 IoT 物联网 Web 组态可视化 BI 数据分析工具

项目源码&#xff0c;文末联系小编 01 DataEase 可视化大屏 DataEase 是一个国产开源的数据可视化分析工具(BI工具)&#xff0c;旨在帮助用户快速分析数据并洞察业务趋势&#xff0c;以实现业务的改进与优化。它支持丰富的数据源连接&#xff0c;包括OLTP和OLAP数据库、数据仓库…

19.JWT

1►JWT博客推荐 阮老师讲得很好了&#xff0c;网址如下&#xff1a; http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html 2►ry是怎么践行JWT的呢&#xff1f; 问题一&#xff1a;不登录的时候有token吗&#xff1f; 答&#xff1a;没有&#xff0c;所…

ARTS Week 36

unsetunsetAlgorithmunsetunset 本周的算法题为 1528. 重新排列字符串 给你一个字符串 s 和一个 长度相同 的整数数组 indices 。 请你重新排列字符串 s &#xff0c;其中第 i 个字符需要移动到 indices[i] 指示的位置。 返回重新排列后的字符串。 img 示例 1&#xff1a;输入&…

模板进阶:非类型模板参数,类模板特化,模板的编译分离

1. 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数当成常…

数据分析:基于聚类的LASSO预测模型包----clustlasso

介绍 clustlasso是结合lasso和cluster-lasso策略的R包&#xff0c;并发表在Interpreting k-mer based signatures for antibiotic resistance prediction。 标准交叉验证lasso分类或回归流程如下&#xff1a; 选择交叉验证数据集&#xff08;数据分割&#xff09;&#xff1…

llama2阅读: logits是什么?

Logits是一个在深度学习中&#xff0c;几乎一直都有的概念&#xff0c;它意味着模型unnormalized final scores. 然后你可以通过softmax得到模型针对你class的概率分布。 而在llama2的代码中&#xff0c;同样有logits的使用&#xff0c;那么针对llama2&#xff0c;logits的作用…

mysql signed unsigned zerofill详解

灵感来源 mysql中有符号signed&#xff0c;无符号unsigned与零填充zerofill UNSIGNED 无符号UNSIGNED是一个属性&#xff0c;你可以在创建或修改表时为整数类型的列指定它。无符号属性意味着该列只能存储非负整数&#xff08;0和正整数&#xff09;&#xff0c;而不是默认的有…

uniapp微信接口回调 response.sendRedirect nginx 报404错误

如题 参考 uniapp打包H5时,访问index.html页面白屏报错net::ERR_ABORTED 404 - 简书 nginx中修改 配置文件 location / { try_files $uri $uri/ /index.html; root html; index index.html index.htm; } uniapp里配置 重新载入

CentOS 6.5 配置国内在线yum源和制作openssh 9.8p1 rpm包 —— 筑梦之路

CentOS 6.5比较古老的版本了&#xff0c;而还是有一些古老的项目仍然在使用。 环境说明 1. 更换国内在线yum源 CentOS 6 在线可用yum源配置——筑梦之路_centos6可用yum源-CSDN博客 cat > CentOS-163.repo << EOF [base] nameCentOS-$releasever - Base - 163.com …

STM32-LED和蜂鸣器

本内容是基于江协科技STM32视频整理而得。 1. LED和蜂鸣器 1.1 LED和蜂鸣器简介 LED&#xff1a;发光二极管&#xff0c;正向导通点亮&#xff0c;反向通电不亮 有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上直流电压即可持续发声&#xff0c;频率固定。 无…

【反悔堆 反悔贪心】2813. 子序列最大优雅度

本文涉及知识点 反悔堆 反悔贪心 LeetCode 2813. 子序列最大优雅度 给你一个长度为 n 的二维整数数组 items 和一个整数 k 。 items[i] [profiti, categoryi]&#xff0c;其中 profiti 和 categoryi 分别表示第 i 个项目的利润和类别。 现定义 items 的 子序列 的 优雅度 可…

哈弗架构和冯诺伊曼架构

文章目录 1. 计算机体系结构 2. 哈弗架构&#xff08;Harvard Architecture&#xff09; 3. 改进的哈弗架构 4. 冯诺伊曼架构&#xff08;Von Neumann Architecture&#xff09; 5. 结构对比 1. 计算机体系结构 计算机体系结构是指计算机系统的组织和实现方式&#xff0c…

Java.lang.Thread类和Java的主线程

一.Java.lang.Thread类 支持多线程编程 常用方法 二.主线程 ◆Java程序启动时&#xff0c;一个线程立即随之启动&#xff0c;通常称之为程序的主线程 ◆main()方法即为主线程入口 ◆产生其他子线程的线程 ◆必须最后完成执行&#xff0c;因为它执行各种关闭动作 示例 使用…

企业相册名片管理小程序模板

微信小程序个人名片公司信息,增添公司信息,增添企业信息,编辑个人信息,查看更多,名片通讯录。 企业相册名片管理小程序模板